为什么我不应该将我的项目文件放在我的 venv 文件夹中?
Why shouldn't I place my project files within my venv folder?
这个问题最常见的答案 说,您不应该将自己的文件放在 venv 目录中。
最强的论据就是不要将自己的文件与外部文件混在一起,这很奇怪,因为一般开发人员会包含很多外部文件或代码或库,以免重新发明轮子。所以我认为这不是一个真正的好点。
另一个参数是
It provides an isolated environment wherein you can download a different version of python packages and run it for your project. Hence, do not put anything inside your virtual environment. Keep it clean.
我认为恰恰相反,最好将您的代码放在 venv 中:
- 我用
--copies
创建了我的 venvs,所以我的 venv-dir 实际上包含了 运行 我的实际项目代码所需的所有内容。 python 安装根本没有 大。
- venv中完全包含完全testet适用版本的包(无论是下载的,还是自己编写的通用打包代码)对于实际的项目代码。这可能适合也可能不适合其他项目代码,但这并不重要,因为对于 this 项目,一切都是 there/optimized/installed。
- 整个 venv 目录都在版本控制之下,所以我基本上可以通过 subversion 而不是 pip 卸载一个包。
- 我什至可以通过 svn 将包括项目代码在内的整个 venv 部署到另一台机器(如果它 "similar enough" 当然...)并直接将我需要的所有东西放在一个地方。
最后是主要论点:如果加载了特定的 venv,我的项目代码只会 运行,因为一般安装不会 "know" 安装的包。
所以:如果项目代码不能 运行,我的 venv 文件夹中的 source
文件夹有什么不好?
您的代码所依赖的代码(不一定 python 顺便说一句,许多包实际上包装了 c 和 c++ 代码)有时会针对不同的硬件和操作系统构建不同的包,一旦安装包这意味着它是为特定的运行时构建的,并且环境绑定到它所安装的系统类型。
如果您想 "freeze" 应用程序依赖项的状态,最佳做法是使用 requirements 文件,它可以轻松启用依赖项解析。
此外,您可以强制使用 specific python interpreters
如果你想发布一个有保证的应用程序,它将在不同的系统上以完全相同的方式运行,我建议查看 containers
这个问题最常见的答案
最强的论据就是不要将自己的文件与外部文件混在一起,这很奇怪,因为一般开发人员会包含很多外部文件或代码或库,以免重新发明轮子。所以我认为这不是一个真正的好点。
另一个参数是
It provides an isolated environment wherein you can download a different version of python packages and run it for your project. Hence, do not put anything inside your virtual environment. Keep it clean.
我认为恰恰相反,最好将您的代码放在 venv 中:
- 我用
--copies
创建了我的 venvs,所以我的 venv-dir 实际上包含了 运行 我的实际项目代码所需的所有内容。 python 安装根本没有 大。 - venv中完全包含完全testet适用版本的包(无论是下载的,还是自己编写的通用打包代码)对于实际的项目代码。这可能适合也可能不适合其他项目代码,但这并不重要,因为对于 this 项目,一切都是 there/optimized/installed。
- 整个 venv 目录都在版本控制之下,所以我基本上可以通过 subversion 而不是 pip 卸载一个包。
- 我什至可以通过 svn 将包括项目代码在内的整个 venv 部署到另一台机器(如果它 "similar enough" 当然...)并直接将我需要的所有东西放在一个地方。
最后是主要论点:如果加载了特定的 venv,我的项目代码只会 运行,因为一般安装不会 "know" 安装的包。
所以:如果项目代码不能 运行,我的 venv 文件夹中的 source
文件夹有什么不好?
您的代码所依赖的代码(不一定 python 顺便说一句,许多包实际上包装了 c 和 c++ 代码)有时会针对不同的硬件和操作系统构建不同的包,一旦安装包这意味着它是为特定的运行时构建的,并且环境绑定到它所安装的系统类型。
如果您想 "freeze" 应用程序依赖项的状态,最佳做法是使用 requirements 文件,它可以轻松启用依赖项解析。 此外,您可以强制使用 specific python interpreters
如果你想发布一个有保证的应用程序,它将在不同的系统上以完全相同的方式运行,我建议查看 containers