安装pyinstaller第三方库方法以及常见问题总结和学习心得
起初我只是想把自己用turtle画的小花发给朋友,但朋友电脑上没有python,所以我打算用pyinstaller把.py打包成.exe这样就可以在朋友电脑上直接运行!
一、pyinstaller的安装方法
1、使用pip联网下载,我们可以在cmd(或者在python安装路径上用powershell)输入下面这行命令
pip install pyinstaller
这样的原理是从python官网上直接下载我们所需要的第三方库,但可能速度会非常慢,我们还可以使用国内的镜像服务器来安装下载
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
例如:pip install pyinstaller -i https://pypi.douban.com/simple
这是从豆瓣镜像源安装pyinstaller,pyinstaller的位置可以换成其他你想安装的库
2、本地安装pyinstaller
提前下载pyinstaller
GitHub就可以下载https://github.com/pyinstaller/pyinstaller
下载完成后解压
打开cmd进入下载目录
python setup.py install
3、pyinstaller的升级与更新
pip install --upgrade pyinstaller
同理在cmd使用pip
二、我所遇到的问题总结
我最开始的时候使用pip install pyinstaller
安装pyinstaller时遇到这样的情况
很红,很吓人
但不要慌,冷静分析error,和系统给出的提示
preparing wheel metadata ...error
WARNING:You are using pip version 20.2.3:however,version 21.0.1 is available
问题:少一个wheel,和pip版本过低
解决方法
1、升级pip(针对系统给出的warning)
pip install --upgrade pip
如果不知道版本的可以使用下面的命令来查看
pip list
或者
pip --version
写本文时,我的pip已经升级到最新版本,并且安装了pyinstller
(升级pip过程中遇到拒绝访问问题)
解决方法:在install后面加–user用管理员权限访问
完美解决!
在网上搜索时发现pip拒绝访问的问题并不少
总结一下解决方法:
pip install --user *package_name* # *package_name*即为你想安装的库
2、pip install wheel(针对wheel…error)
使用pip安装wheel
pip install wheel
1)、(不过我在安装了wheel后依然显示preparing wheel metadata ...error
但是不知道为什么装上了pyinstaller3.3.1版本)出现这个问题的原因我下面会说
这是表面现象,实际上使用pyinstaller根本无法完成打包,即使打包了也是空文件夹,因为我使用的是python3.9,pyinstaller3.3.1版本太低了
2)、(安装wheel时报错)
error: invalid command ‘bdist_wheel
针对上面两种问题,可采取卸载重装的办法
pip uninstall wheel #卸载wheel
pip3 install wheel #使用pip3 install的方法安装
重点:
一般这种时候,大部分人已经成功安装了pyinstaller,但是如果你在尝试了上面的方法后还是无法安装pyinstaller或者错误的安装上pyinstaller3.3.1版本
请仔细回忆你从哪儿下载的python,如果是微软商城,卸载它,去官网下载
python官网链接:https://www.python.org/
三、.py→.exe
打包.py文件,用cmd进入文件所在目录后
PyInstaller -F -w -i xxx.ico dev.py --hidden-import=pandas._libs.tslibs.timedeltas
常用参数:
-F 指只生成一个exe文件,不生成其他dll文件
-w 不弹出交互窗口,如果你想程序运行的时候,与程序进行交互,则不加该参数
-i 设定程序图标 ,其后面的xxx.ico文件就是程序小图标
dev.py 要打包的程序,如果你不是在dev.py同一级目录下执行的打包命令,这里得写上dev.py的路径地址
–hidden-import=pandas._libs.tslibs.timedeltas 隐藏相关模块的引用
打包文件 hel.py
成功打包
最后附上运行成功的小花
我在打包时遇到的问题:
1、已经安装了pywin32,但还是无法打包文件
解决方法:
升级pyinstaller
pip install --upgrade pyinstaller
参考链接
2、error: (1920, ‘LoadLibraryExW’, ‘系统无法访问此文件。’)
解决方法:
参考链接
参考链接