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平台插件。 重新安装应用程序可以解决这个问题。)
但推荐是环境内最好不要有这个库,这就要用到上面的管理虚拟环境的东西了。