Python一些常用的工具
1.Python切换镜像源
清华源
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/simple
- 官方:
https://pypi.python.org/pypi
- 豆瓣:
https://pypi.doubanio.com/simple/
- 阿里:
http://mirrors.aliyun.com/pypi/simple/
- 中科大:
https://mirrors.ustc.edu.cn/pypi/web/simple/
- 清华:
https://pypi.tuna.tsinghua.edu.cn/simple/
2.Python创建虚拟环境
2.1生成项目所需要的依赖
pip freeze > requirements.txt
2.2 虚拟环境
2.2.1创建虚拟环境:
python -m venv myenv
2.2.2 激活虚拟环境
myenv\Scripts\activate
3.Python项目打包
3.1 Pyinstaller模块的安装
pip install pyinstaller
3.2 Pyinstaller模块的使用
pyinstaller [选项] Pyhton脚本
例如
pyinstaller -F main.py
选项 | 意义 |
---|---|
-h | 查看该模块的帮助信息,会罗列出所有选项以供查询,例如 pyinstaller -h |
-v | 查看该模块的版本信息,会显示该模块的版本号,例如 pyinstaller -v |
-F | 生成单个的可执行文件,例如 pyinstaller -F Python源文件 |
-D | 创建一个包含可执行文件的单文件夹捆绑包(默认),例如 pyinstaller -D Python源文件 |
-n | 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字 |
-d | 产生 debug 版本的可执行文件 |
-w | 指定程序运行时不显示命令行窗口(仅对 Windows 有效) |
-c | 指定使用命令行窗口运行程序(仅对 Windows 有效) |
-o | 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件 |
以上命令运行完成后,所在目录会生成一个build
目录,包括所有的编译脚本;一个 dist
目录,包含整个项目的打包结果;还会有一个windowdemo.spec
文件,这是一个规格文件,PyInstaller 通过执行 spec 文件的内容来构建应用程序。
3.3 spec资源文件介绍
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['DY.py'], # 打包主文件
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='DY',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
3.3.1 Analysis参数
参数 | 含义 |
---|---|
scripts | 也是第一个参数,它是一个脚本列表,可以传入多个py脚本,效果与命令行中指定多py文件相同,即py文件不止一个时,比如“pyinstaller xxx1.py xxx2.py”,pyinstaller会依次分析并执行,并把第一个py名称作为spec和dist文件下的文件夹和程序的名称。 main文件入口,或者你执行文件的时候要执行多少个python文件,那就写几个,比如pyinstaller hello.py hello2.py,会依次去执行 |
pathex | 默认有一个spec的目录,当我们的一些模块不在这个路径下,记得把用到的模块的路径添加到这个list变量里。同命令“-p DIR/–paths DIR”. 意思是项目需要从什么地方导入自定义库 |
datas | 项目需要用到什么数据,比如图片,视频等。里面格式为tuple,第一个参数是文件路径,第二个是打包后所在的路径。 作用是将本地文件打包时拷贝到目标路径下。datas是一个元素为元组的列表,每个元组有两个元素,都必须是字符串类型,元组的第一个元素为数据文件或文件夹,元组的第二个元素为运行时这些文件或文件夹的位置。例如:datas=[(’./src/a.txt’, ‘./dst’)],表示打包时将"./src/a.txt"文件添加(copy)到相对于exe目录下的dst目录中。也可以使用通配符:datas= [ (’/mygame/sfx/*.mp3’, ‘sfx’ ) ],表示将/mygame/sfx/目录下的所有.mp3文件都copy到sfx文件夹中。也可以添加整个文件夹:datas= [ (’/mygame/data’, ‘data’ ) ],表示将/mygame/data文件夹下所有的文件都copy到data文件夹下。同命令“–add-data”。 |
binaries | 添加二进制文件,也是一个列表,定义方式与datas参数一样。没具体使用过。同命令“–add-binary”。 |
hiddenimports | 指定脚本中需要隐式导入的模块,比如在__import__、imp.find_module()、exec、eval等语句中导入的模块,这些模块PyInstaller是找不到的,需要手动指定导入,这个选项可以使用多次。同命令“–hidden-import MODULENAME/–hiddenimport MODULENAME”。项目需要用到什么数据,比如图片,视频等。里面格式为tuple,第一个参数是文件路径,第二个是打包后所在的路径。 |
hookspath | 指定额外hook文件(可以是py文件)的查找路径,这些文件的作用是在PyInstaller运行时改变一些Python或者其他库原有的函数或者变量的执行逻辑(并不会改变这些库本身的代码),以便能顺利的打包完成,这个选项可以使用多次。同命令“–additional-hooks-dir HOOKSPATH”。 |
runtime_hooks | 指定自定义的运行时hook文件路径(可以是py文件),在打好包的exe程序中,在运行这个exe程序时,指定的hook文件会在所有代码和模块之前运行,包括main文件,以满足一些运行环境的特殊要求,这个选项可以使用多次。同命令“–runtime-hook RUNTIME_HOOKS”。 |
excludes | 指定可以被忽略的可选的模块或包,因为某些模块只是PyInstaller根据自身的逻辑去查找的,这些模块对于exe程序本身并没有用到,但是在日志中还是会提示“module not found”,这种日志可以不用管,或者使用这个参数选项来指定不用导入,这个选项可以使用多次。同命令“–exclude-module EXCLUDES”。假如你用的python有很多库,但是你不需要用到某个,那么就把它添加到里面去,比如很多人没有用到PyQt5, pandas, excludes=[‘PyQt5’] |
3.3.2 exe参数
参数 | 含义 |
---|---|
console | 设置是否显示命令行窗口,同命令-w/-c。 |
icon | 设置程序图标,默认spec是没有的,需要手动添加,参数值就是图片路径的字符串。同命令“命令-i/–icon”。 |
本文来自博客园,作者:Van-kai,转载请注明原文链接:https://www.cnblogs.com/van-kai/articles/18302591