虚拟环境篇(建议)

## 在项目文件夹中打开终端 ## 安装 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 清理虚拟环境,仅保留必要依赖后再打包