跳过正文
  1. Blogs/

Python小技巧

··4 分钟· loading · loading · · ·
Morethan
Python
Morethan
作者
Morethan
计算机、物理与AI理工男
目录
技术杂项 - 这篇文章属于一个选集。
§ 2: 本文

创建虚拟环境
#

创建
#

一些常规的代码例子如下👇

# 创建虚拟环境
python -m venv your_env_name

# 指定python版本创建虚拟环境,如果你的python是默认安装路径
python -m venv your_env_name --python=python3.11

# python是自定义的安装路径
D:\Python\Python311\python.exe -m venv your_env_name

下面有一些可选参数用于创建自定义的虚拟环境:

参数名 含义
--system-site-packages 创建的虚拟环境将包含全局Python环境中的包,这可以避免重复安装一些常用的包
--clear 如果指定的虚拟环境目录已经存在,这会清除目录中的所有内容,然后重新创建虚拟环境
--version 用于确认虚拟环境中 Python 的版本
所有的参数说明都可以通过运行 python -m venv -h 来获得;不用到处查文档了~😆

激活
#

默认情况下,虚拟环境处于非激活状态。在“your_env_name/Scripts/”目录下将有一个名为“activate”的文件,用命令行运行即可。

# 激活虚拟环境
your_env_name/Scripts/activate

程序打包
#

我们经常需要把自己写的 Python 程序分享出去。然而只分享源代码会使得不太懂代码的用户非常苦恼,因为源代码的运行还需要搭建本地运行环境,因此打包程序应运而生。

pyinstaller
#

安装非常简单,就像别的 Python 包一样 pip install pyinstaller 即可;使用时在目标文件所在的目录启动终端,然后运行命令即可。

特点:打包速度较快;打包后的程序较大

常见的命令代码:

# 将main.py文件打包为一个独立的可执行文件;可执行文件运行后禁用命令行窗口
pyinstaller -F -w main.py

# 将main.py文件打包为一个工程文件夹;可执行文件运行后启用命令行窗口
pyinstaller -D main.py
参数 说明
-h, --help 显示帮助信息并退出
-v, --version 显示程序版本信息并退出
-F, --onefile 将所有内容打包为一个独立的可执行文件
-D, --onedir 将所有内容打包为一个目录(默认选项)
-w, --windowed, --noconsole 禁用命令行窗口(仅对 Windows 有效)
-c, --console, --nowindowed 使用命令行窗口运行程序(默认选项,仅对 Windows 有效)
-a, --ascii 不包含 Unicode 字符集支持(默认包含)
-d, --debug 产生 debug 版本的可执行文件
-n NAME, --name=NAME 指定生成的可执行文件或目录的名称(默认为脚本名称)
-o DIR, --out=DIR 指定 spec 文件的生成目录(默认为当前目录)
-p DIR, --path=DIR 设置 Python 导入模块的路径(类似设置 PYTHONPATH)
-i <FILE>, --icon <FILE> 设置可执行文件的图标(支持 .ico.icns 格式)
--distpath DIR 指定生成的可执行文件的输出目录(默认为 ./dist
--workpath WORKPATH 指定临时工作文件的目录(默认为 ./build
--add-data <SRC;DEST or SRC:DEST> 添加额外的数据文件或目录到可执行文件中(Windows 使用分号,Linux/OSX 使用冒号分隔源路径和目标路径)
--add-binary <SRC;DEST or SRC:DEST> 添加额外的二进制文件到可执行文件中
--hidden-import MODULENAME 添加未自动检测到的模块
--exclude-module EXCLUDES 排除指定的模块
--clean 清理 PyInstaller 缓存和临时文件
--log-level LEVEL 设置构建时控制台消息的详细程度(可选值:TRACE、DEBUG、INFO、WARN、ERROR、FATAL)

Nuitka
#

将 Python 代码打包为 exe 可执行文件,转换原理是先将 Python 代码转换为 C 代码,然后再编译 C 代码。

特点:打包速度相当慢;需要额外安装 C 编译器,尽管可以自动完成但是对于内存空间管理非常严格的用户并不适用;打包后的程序体积很小(实测是 pyinstaller 的十分之一)

安装命令:

pip install -U nuitka

常见使用命令:

# 将main.py文件打包为一个exe文件,使用链式优化,完成打包后清理临时文件
python -m nuitka --lto=yes --remove-output --onefile main.py
参数 说明
--standalone 创建一个包含所有依赖的独立可执行文件夹。
--onefile 将所有内容打包为一个单独的 .exe 文件。
--optimize=N 设置优化级别(012),数字越大,优化越多。
--lto 启用链接时优化(Link Time Optimization),可选值为 noyesthin
--enable-plugin=<plugin_name> 启用指定插件,如 tk-internumpyanti-bloat 等。
--output-dir=<dir> 指定编译输出目录。
--remove-output 编译完成后删除中间生成的 .c 文件和其他临时文件。
--nofollow-imports 不递归处理任何导入模块。
--include-package=<package_name> 显式包含整个包及其子模块。
--include-module=<module_name> 显式包含单个模块。
--follow-import-to=<module/package> 指定递归处理的模块或包。
--nofollow-import-to=<module/package> 指定不递归处理的模块或包。
--include-data-files=<source>=<dest> 包含指定的数据文件。
--include-data-dir=<directory> 包含整个目录的数据文件。
--noinclude-data-files=<pattern> 排除匹配模式的数据文件。
--windows-icon-from-ico=<path> 设置 Windows 可执行文件的图标。
--company-name, --product-name, --file-version, --product-version, --file-description 设置 Windows 可执行文件的属性。
技术杂项 - 这篇文章属于一个选集。
§ 2: 本文

相关文章

本地 OverLeaf 部署
··4 分钟· loading · loading
Morethan
Overleaf LaTeX
贝叶斯优化
··2 分钟· loading · loading
Morethan
Math MATLAB CUMCM