【python】【‘pyinstaller’不是内部或外部命令】从“打包”到“打开”——pyinstaller下载和应用以及“pyinstaller不是内部或外部命令”的解决方案

从“打包”到“打开”

前情提要:
1.本文会先展示个人成功经历,然后会进一步总结个人学习过程中碰到的相关问题和个人理解。
2.以下都是个人学习经验,接受质疑、解惑、建议等各种评论(恶意评论除外)
3.根据目录自行跳转所需的部分
4.所有过程在cmd中进行。如何打开cmd?
(1)win+R
(2)输入cmd

一、应用pyinstaller将.py文件打包成.exe文件

1、pyinstaller

(1)确认个人pc上是否有pyinstaller

在cmd中直接输入

pip list

一般也是用这种方法查看个人pc上安装的python库

从上面的截图可以确认目前并没有pyinstaller
//毕竟为了截这张图,黎名刚把它卸载。

(2)下载pyinstaller

打开cmd输入

pip install pyinstaller

看到最后一行,即成功。
注意:安装路径

(3)确认安装成功

重复(1)进行查看

确实已经OK

2、打包.py成.exe

(1)确定pyinstaller.exe的位置

这个可以通过1.(2)中下载时的安装路径//真废话!找位置肯定看你下载到哪啊

c:\users\26864\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from pyinstaller) (0.2.0)

黎名确实通过这个路径找到一个PyInstaller文件夹,但这并不是我们的目标。

我们转向上一层文件夹,可以找到Scripts文件夹

进而找到pyinstaller.exe

C:\Users\26864\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\Scripts\pyinstaller.exe

(2)打包

打包的基本方法,在命令行中直接如下:

pyinstaller -F xxx.py

但有如下的常见问题:

C:\Users\26864>pyinstaller -F lxh.py
‘pyinstaller’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。


所以针对此问题做以下操作:

依据上述pyinstaller.exe的位置更改命令行的位置

这里需要提醒的是更改的命令以及结尾

cd C:\……\Scripts\

回车如下:

在命令行后输入如下:

pyinstaller -F C:\Users\26864\Desktop\luxiaohei\lxh.py

其中在xxx.py的位置如果和前面的命令行的位置不同步,就需要如上:单独找到我需要打包的lxh.py文件

回车后,如下即成功打包。

命令行运行结束后可以找到所需lxh.exe文件的位置,如下:



显然打包ok!!!

二、打开lxh.exe

1、双击lxh.exe文件

如果闪退

(1)在正常情况下

因为运行结束了,时间短,且没有相应的输入要求,也没有相关的窗口型输出等。
所以,

程序:悄悄的我走了,正如我悄悄的来;我闪一闪屏幕,不带走一丝内存。
//直白点,你自己程序什么样心里没点数吗!!!

(2)在非正常情况下

运行失败,少文件。黎名一开始就是这种情况。但是通过双击这种方法,你是看不出问题的。所以需要第二种方法。

2、通过命令行输入地址打开

(1)成功运行

命令行输入:

C:\Users\26864\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\Scripts\dist\lxh.exe


通过这里的报错可以看到缺少了两个文件,分别是文件data.txt和文件夹lxh。
这里是因为在原程序中调用了这两个文件。
所以怎么办?
莽!!!把需要的东西直接扔到桌面上!!!

然后直接双击lxh.exe文件,结果如下:

至此,打开ok!!!

(2)个人问题提问

上述解决了缺少文件问题后,是通过双击打开的lxh.exe文件,并成功运行。
好奇心促使黎名想要查看一下,通过cmd打开放置在桌面上的lxh.exe会给出什么输出。
所以就出现了以下问题:
竟然没有变,还是报错。且和之前的报错一样。

这就头大了,明明已经将相应的文件放到桌面上了,并且双击可以成功运行了,可是cmd中为什么还是报错???

//如果有了解的大佬路过,希望能够在评论区看到你的解答。
//提点以下问题方向即可
//请以如下格式给出解答,感谢你的支持与帮助。

二、2、(2)……

三、常见问题及其个人理解

1、‘pyinstaller’ 不是内部或外部命令,也不是可运行的程序或批处理文件。

(1)问题背景

环境变量配置出问题,计算机运行命令时,是在环境变量中寻找指定位置并运行命令。
可能原因是在安装python时,没有勾选add xxx to PATH这样的选项。//时间已久不晓得自己有没有勾选了。
总结以下,就是路径原因

(2)解决方案

(i)在命令行转向pyinstaller.exe所在的位置

就是本文的上述的方法。
缺点就是麻烦。
优点嘛,懂了这个问题的本质???!

(ii)完善环境变量配置


双击Path添加相关的路径
路径1:……\Python38
路径2:……\Python38\Scripts

因为黎名自己的库都在上图的最后两个路径下,所以就新建并把这两个地址复制到这里。
但也有放在上面倒数第四个地址下的,这个就根据自己的情况而定。但都要把两种路径全放进去。
这里放以下结果:

打包OK!!!
但这样操作后,随之改变的就是生成的.exe文件的位置发生了变化。根据本文(一、2)可以自行确定位置。

四、待续

下一篇吧,后面在放上来。
那时你应该还在。

来源:尚黎名

物联沃分享整理
物联沃-IOTWORD物联网 » 【python】【‘pyinstaller’不是内部或外部命令】从“打包”到“打开”——pyinstaller下载和应用以及“pyinstaller不是内部或外部命令”的解决方案

发表评论