"Python 3.9" 和 "Python 3.9 (venv)" 解释器有什么区别?

What is the differene between "Python 3.9" and "Python 3.9 (venv)" interpreters?

如果我开始一个新的 python 项目,pycharm 会将 Python 3.9 (venv) 设置为默认解释器。有了这个,我总是需要重新安装已经安装的软件包,所以我改为 Python 3.9 解释器,但我不知道真正的区别是什么,我应该使用哪个。

区别在于,与不依赖于上下文的基础解释器不同,venv (virtualenv) 解释器服务于特定项目。

使用虚拟环境的好处是可以根据每个项目的需求和依赖,分别维护不同的包和包版本。

为了避免每次都重新安装相同的软件包,您可以:

  1. 继承全局包。默认情况下,venv 解释器附带安装的最小包,但可以继承全局包。 我看到您正在使用 PyCharm,因此您可以按照“如果选择新环境:”第 3 部分下的 these instructions 进行操作。

    您也可以通过在创建命令中添加“--system-site-packages”直接使用 virtualenv 包来实现此目的(例如 virtualenv venv --system-site-packages).

  2. 创建一个 requirements.txt 文件。 Pip 可以使用指定要安装的包(以及可选的包版本)的文件来安装包。你可以 运行:
    pip install -r /path/to/requirements.txt 该文件通常位于项目的根文件夹中。

    为了从现有的解释器创建这样的文件,您可以使用命令

    pip freeze > /path/to/requirements.txt

个人比较喜欢第二种