关于python虚拟环境的困惑

关于python虚拟环境的困惑,python,python-venv,Python,Python Venv,我最近开始学习python。学习进展很快,因为我以前有编程经验。但有一件事让我很困惑,那就是虚拟环境。有时在视频中,我会看到或听到有人谈论设置venv,但我并不完全了解它的所有内容 我知道它们保留了特定项目的依赖关系,因为有些项目可能需要不同于其他项目的模块。但是我也可以将项目文件本身与虚拟环境放在同一个文件夹中吗?我是否必须在特定的位置/文件夹中创建虚拟环境 如果有人能帮我弄清楚这件事就好了 python虚拟环境的位置并不重要。您可以将虚拟环境文件夹创建到集中的位置,如~/venvs/mypr

我最近开始学习python。学习进展很快,因为我以前有编程经验。但有一件事让我很困惑,那就是虚拟环境。有时在视频中,我会看到或听到有人谈论设置venv,但我并不完全了解它的所有内容

我知道它们保留了特定项目的依赖关系,因为有些项目可能需要不同于其他项目的模块。但是我也可以将项目文件本身与虚拟环境放在同一个文件夹中吗?我是否必须在特定的位置/文件夹中创建虚拟环境


如果有人能帮我弄清楚这件事就好了

python虚拟环境的位置并不重要。您可以将虚拟环境文件夹创建到集中的位置,如
~/venvs/myproj
,也可以将它们放在项目文件夹中,如

myproj
|-- venv/
|-- setup.py
|-- somemodule/
|-- .gitignore
当然,任何其他文件夹都是python虚拟环境的有效位置,但这两个是最常见的实践

如果虚拟环境放置在项目文件夹中,则不应将其添加到版本控制中。相反,可以在
setup.py
requirements.txt
pyproject.toml
或类似文件中列出项目依赖项。这些只是关于如何创建虚拟环境的说明,这就是您需要保存的全部内容


还请注意,虚拟环境不打算手动修改;我的意思是,有时初学者可能希望在
venv
文件夹中编写自己的代码,而这不是虚拟环境的使用方式。自己的代码(“项目代码”)应与虚拟环境分开放置。人们应该认为,可以随时删除任何虚拟环境,因为您有指令(
setup.py
requirements.txt
pyproject.toml
)随时只需一个命令即可重建虚拟环境。

venv的位置无关,因为venv刚刚被激活或停用。如果你自己做一个,激活它并检查“which python”的输出,应该很清楚。我也可以把python文件自己放在venv中吗?为什么你需要把它们放在同一个文件夹中?Most允许您指定存储虚拟环境文件的文件夹。请参阅中的
venv
的语法。不过,您通常不需要这样做(甚至不关心它),只要设置虚拟环境并在每次处理项目时激活它即可。如果您使用的是源代码管理,那么无论如何都不会提交虚拟环境文件,因此将其与项目文件放在一起没有任何好处。