虚拟环境篇(建议)
## 在项目文件夹中打开终端 ## 安装 python3-full(确保有完整的 venv 模块): ### macOS/Linux(终端)sudo apt install python3-full ## 创建虚拟环境 python3 -m venv venv_name venv_name即为虚拟环境名称,建议英文 ## 激活虚拟环境 ### Windows venv_name\Scripts\activate.bat #cmdor .\venv_name\Scripts\Activate.ps1 #powershell ### macOS/Linux(终端) source venv_name/bin/activate ## 使用虚拟环境 [激活后,终端提示符前会显示 (venv_name)] pip install 包名 # 例如:pip install requests ## 退出虚拟环境 deactivate
点击展开virtualenv教程
-
安装virtualenv:
pip install virtualenv -
基本用法(默认使用当前 Python 版本)
`virtualenv venv_name` # 指定 Python 版本(需系统已安装对应版本) `virtualenv -p python3.13 venv_name # 使用 Python 3.13`</li> <li> 激活 / 退出虚拟环境:与 venv 完全相同</li> <li> 导出当前环境的依赖列表: `pip freeze > requirements.txt`</li> <li> 在新环境中导入依赖: `pip install -r requirements.txt`</li> <li> 恢复激活虚拟环境:在项目文件夹下用终端激活</li> </ul>
Nuitka篇
这是一个将python转译成C,再打包成exe的工具,打包速度慢,但运行速度快,打包后的文件小。 ## 安装nuitka pip install nuitka
## 测试py文件能否执行 python xxx.py
## 打包需要的依赖;打包成单文件 nuitka xxx.py --standalone --onefile
## 补充文件路径 --include-data-file=电脑中文件的路径=程序中引用的路径
## 补充文件夹路径 --include-data-dir=文件夹路径=电脑中文件夹的路径=程序中调用的路径
## 为 Windows 可执行文件设置图标(需 .ico 格式) --windows-icon-from-ico=图标路径
## 生成无控制台窗口的程序(适合 GUI 应用,如 PyQt、Tkinter) --disable-console
## eg: nuitka xxx.py --standalone --onefile --include-data-file=电脑中文件的路径=程序中引用的路径 --include-data-dir=文件夹路径=电脑中文件夹的路径=程序中调用的路径 --windows-icon-from-ico=图标路径 --disable-console
## 查看报错 xxx.exe在cmd中查看
## 缺点 > 用最新版的python3.13出现MinGW64 编译器不兼容 解决办法:安装最新 MSVC 编译器,运行安装器, 勾选 “使用 C++ 的桌面开发”(无需安装完整 Visual Studio,仅需组件)。
在右侧 “可选组件” 中,确保勾选 “MSVC v143 - VS 2022 C++ x64/x86 生成工具”(版本需 ≥14.3) 和 “Windows 10 SDK”(或 Windows 11 SDK,匹配你的系统版本)
之后再重新打包nuitka 2.py --standalone --onefile --msvc=latest
PyInstaller
这是一个将python直接打包成exe的工具,打包速度快,但运行速度满,且打包后的文件大。(简写的大小写不能改) ## 安装PyInstaller pip install pyinstaller
## 单文件打包 pyinstaller --onefile xxx.py # 简写:-F
## 自定义生成的可执行文件名称(默认与脚本名一致) --name=程序名 # 简写:-n
## 生成无(有)控制台窗口的程序 --noconsole #简写:-w (--console #简写:-c)
--add-data=源文件:目标路径(Windows 用 ; 分隔) #简写:-a
点击展开打包示例
- 单个文件: –add-data “src/file.txt;dest” (仅打包 file.txt 到 dest/ 目录)
- 同类型文件: –add-data "src/*.png;dest/images" (打包所有 .png 图片到 dest/images/)
- 整个文件夹(包括子目录): –add-data "src/folder/*;dest/folder" (打包 folder/ 下的所有内容,保持目录结构)
## 手动指定隐藏的依赖模块(解决动态导入导致的 “ModuleNotFoundError”) --hidden-import=模块名 #简写:-p
## 清理上次打包的临时文件,避免缓存干扰 --clean
## 中文显示乱码 确保脚本中编码声明正确(# -- coding: utf-8 --) 避免在路径或文件名中使用中文(尤其 Windows 系统)
## 打包后文件过大 用 –exclude-module 排除不需要的模块(如 --exclude-module=matplotlib) 清理虚拟环境,仅保留必要依赖后再打包