在conda环境中使用Pyinstaller打包和conda控制台命令和python环境解析和打包时pyside2小坑

1.python环境

python代码是在虚拟环境里运行的。在一个电脑上,可以有多个python虚拟环境。

不同环境可以有不同的python版本和库,这也是python要有这么多虚拟环境的原因。

2.conda中的虚拟环境

anaconda是对python虚拟环境进行管理的工具。我们一般在anaconda的控制台(anaconda prompt)上操作虚拟环境。

下面是相关的命令

查看当前的虚拟环境的列表

conda env list

切换虚拟环境

activate your_env_name

查看当前环境下已经安装的包

conda list

查看当前环境的python版本

python --version

创建新环境

conda create -n your_env_name python=X.X
#这里注意如果后面没有python=版本号,这个虚拟环境是没有python.exe解释器的,也就无法使用了。

删除指定环境的包

conda remove --name your_env_name  package_name

删除虚拟环境

conda remove -n your_env_name --all

已生成的虚拟环境改变python版本。

conda install python3.7
# conda install python版本号

在某环境下安装包

切换到该环境,使用pip安装就行,不确定这里使用命令行和pycharm中的终端是否会把包安装到指定环境。

3.在pycharm中选择虚拟环境

 打开项目在文件中选择设置。

 选择项目中的python解释器,点击红圈部分。

选择添加新环境

 选择conda环境中的现有环境,点击红圈找到虚拟环境的python.exe

虚拟环境一般存在anaconda\envs里。找到环境的文件夹,里面就有python.exe选择它,点确定。

这时环境就变换了。

5.pyinstaller打包python程序

如果直接使用基础环境打包程序,程序可能会很大,这是因为pyinstaler会把环境内所有库都打包到程序中,无用不用的到。

所以最好的方法是新建一个python环境,把需要的包下载到这个环境中,再用这个环境来打包。

(判断要下载哪些包,可以让py在新建环境中运行,缺什么就下上面,直到可以正常运行)

注意除了运行所需要的包,还要下载Pyinstaller。不下载Pyinstaller也能打包,但是会出现把基础环境的库都打包进去的情况,并且很容易出缺少库的问题。

打包流程:

先切换到打包的环境中,再把控制台地址(就是每条输入前面的地址)切换到要打包的py所在的位置。执行打包命令即可。

6.Pyinstall的打包命令

Pyinstaller的基础打包命令是Pyinstaller py文件名。

Pyinstaller main1.py

但还有一些修饰词。

-F, –onefile    打包一个单个文件,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用
-D, –onedir    生成一个文件夹,里面有一堆依赖,便于维护
-K, –tk    在部署时包含 TCL/TK
-a, –ascii    不包含编码.在支持Unicode的python版本上默认包含所有的编码.
-d, –debug    产生debug版本的可执行文件
-w,–windowed,–noconsole    使用Windows子系统执行.当程序启动的时候不会打开命令行(只对Windows有效)
-c,–nowindowed,–console    
使用控制台子系统执行(默认)(只对Windows有效)
-s,–strip    可执行文件和共享库将run through strip.注意Cygwin的strip往往使普通的win32 Dll无法使用.
-X, –upx    如果有UPX安装(执行Configure.py时检测),会压缩执行文件(Windows系统中的DLL也会)(参见note)
-o DIR, –out=DIR    指定spec文件的生成目录,如果没有指定,而且当前目录是PyInstaller的根目录,会自动创建一个用于输出(spec和生成的可执行文件)的目录.如果没有指定,而当前目录不是PyInstaller的根目录,则会输出到当前的目录下.
-p DIR, –path=DIR    设置导入路径(和使用PYTHONPATH效果相似).可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录.也可以使用多个-p参数来设置多个导入路径,让pyinstaller自己去找程序需要的资源
–icon=<FILE.ICO>    
将file.ico添加为可执行文件的资源(只对Windows系统有效),改变程序的图标  pyinstaller -i  ico路径 xxxxx.py
–icon=<FILE.EXE,N>    设置生成后的图标
-v FILE, –version=FILE    将verfile作为可执行文件的版本资源(只对Windows系统有效)
-n NAME, –name=NAME    生成后的exe名称

 一般的打包方式为

Pyinstaller -w -D main1.py

 7.Pyside2小坑

如果被打包的库内有Pyside2,运行exe文件时会报错。

This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.(该应用程序无法启动,因为无法初始化Qt平台插件。 重新安装应用程序可以解决这个问题。)

解决方法如下:(62条消息) 【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_Melody_Uo的博客-CSDN博客

但推荐是环境内最好不要有这个库,这就要用到上面的管理虚拟环境的东西了。
 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值