使用虚拟环境打包python为exe 文件的方法 使用过anaconda环境下打包py文件的一点感悟,使用的是pyinstaller+anaconda环境下打包py文件 打包: pyinstaller -F -w -i logo.ico xxxx.py -F:强制打包 -w:不带后台命令窗口 -i: 使用logo图标的地址 需要打包的文件 遇到的问题: 1.首先对于使用anaconda打包py文件是存在问题的; 1)打包出来的exe会很大,会打包很多关联库; 2)而其中的一些关联库是没有用,而导入这些库会拖慢程序运行的效率。 解决:使用虚拟环境进行打包 1.使用pipenv 虚拟环境的应用可以用pipenv 安装pipenv :pip install pipenv 使用pipenv建立虚拟环境,通过命令行:pipenv install 建立虚拟环境; 建立虚拟环境有主意的是:建立的虚拟环境是在一个项目文件下的路径上建立的 3.建立完成后可以通过pipenv shell 进入虚拟环境 4.进入后可以通过pip install 包 对依赖的第三方库包进行安装 pipenv install 包是对库包进行配置导入绑定到配置文件pipfile中 最后可以在虚拟环境中安装pyinstaller来对需要打包的文件进行打包; 2.使用virtualenv 1.安装virtualenv :pip install virtualenv 2.在相应的项目目录下面建立虚拟环境:cmd 中virtualenv+venv(命名) virtualenv --no-site-packages --python=2.7 env --no-site-packages: 默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境 3.激活环境:项目路径下;venv\scripts\activate 4.安装库pip install xxxx 批量安装pip install -r xxx.txt 打包安装遇到的问题分享: 1.在进行打包的时候遇到报错: Fatal error: PyInstaller does not include a pre-compiled bootloader for your platform.http://pyinstaller.readthedocs.io/en/stable/bootloader-building.html 查阅资料后发现可以通过降级实现,后来我发现造成这个问题主要是后台的win10防火墙吧我虚拟环境中的pyinstaller的pyinstaller\PyInstaller\bootloader\Windows-32bit中的runw.exe删掉了,可以通过原有python库中已有的库中去复制粘贴到相应的路径下,防火墙应该时删掉了某些重要的东西。 但是我发现后来打包中一旦带有 2.打包后发现的一些问题:numpy: No module named ‘numpy.random common' 可以发现使用numpy下,pandas的下引用的numpy导入失败,经查阅这可能是版本问题造成的 可以先卸载原有的版本pip uninstall numpy 改为安装pip install numpy==1.16.2 3.distutils not included with latest virtualenv (16.4.0) #4064 打包出来可能会发现缺少导入包distutils,因为distutils是内置库,无法pip install 安装,并且virtualenv16.4以后就不再自带库distutils库了。 所以可以通过降低virtualenv解决这个问题; 总结 以上所述是小编给大家介绍的使用虚拟环境打包python为exe 文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对中文源码网网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!