我有一个使用 PyCharm 构建的命令行 python 应用程序。要运行它,我调用
source venv\bin\activate
,然后使用 python my_app.py
启动我的应用程序。
现在为了将其移植到 Windows,我将整个项目目录(python 文件和 venv)复制到我的 PyCharmProjects 目录中。当我尝试从 pycharm 中运行我的应用程序时,由于缺少软件包而无法工作。所以我不得不再次手动安装所有必需的软件包。应用程序在 PyCharm 中运行后,我想在命令行上测试它,但我的
activate.bat
目录中的任何位置都没有 venv
,也没有 .venv
目录。我想当我再次从 Windows 回到 Linux 时我也会遇到类似的问题。
将项目从 Linux 移植到 Windows(反之亦然)的正确方法是什么?
依赖项不会随项目一起复制。即使您复制
venv
文件夹,在一个操作系统上创建的虚拟环境也无法在另一个操作系统上正常工作,因为 Python 解释器的二进制文件和路径是 different
。
不要传输虚拟环境,而是为依赖项创建一个文件
requirements.txt
。最好将所有已安装软件包的列表保存在唯一的一个文件中:
在当前操作系统上激活虚拟环境并创建
requirements.txt
:
source venv/bin/activate
pip freeze > requirements.txt
仅将项目代码和requirements.txt文件传输到目标系统
将项目转移到另一个系统(windows或linux)后,创建一个新的虚拟环境并安装此文件中的所有依赖项:
python -m venv venv
在 Linux/Mac 上激活 venv:
source venv/bin/activate
在 Windows 上激活 venv:
venv\Scripts\activate
安装所有软件包
pip install -r requirements.txt