为什么我不应该将我的项目文件放在我的 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 中:

最后是主要论点:如果加载了特定的 venv,我的项目代码只会 运行,因为一般安装不会 "know" 安装的包。

所以:如果项目代码不能 运行,我的 venv 文件夹中的 source 文件夹有什么不好?

您的代码所依赖的代码(不一定 python 顺便说一句,许多包实际上包装了 c 和 c++ 代码)有时会针对不同的硬件和操作系统构建不同的包,一旦安装包这意味着它是为特定的运行时构建的,并且环境绑定到它所安装的系统类型。

如果您想 "freeze" 应用程序依赖项的状态,最佳做法是使用 requirements 文件,它可以轻松启用依赖项解析。 此外,您可以强制使用 specific python interpreters

如果你想发布一个有保证的应用程序,它将在不同的系统上以完全相同的方式运行,我建议查看 containers