【问题标题】:What is the differene between "Python 3.9" and "Python 3.9 (venv)" interpreters? [duplicate]“Python 3.9”和“Python 3.9 (venv)”解释器有什么区别? [复制]
【发布时间】:2021-04-08 22:04:59
【问题描述】:

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

【问题讨论】:

  • 如果您不了解虚拟环境,您需要了解它们,docs.python.org/3/tutorial/venv.html
  • 这能回答你的问题吗? What is a virtualenv, and why should I use one?
  • 所以如果我在 pycharm 中创建一个新项目,它也会创建一个虚拟环境,并且使用“python 3.9(venv)”解释器我只能使用该 venv 中的包,但如果我转换为“python 3.9”解释器,它将使用根 python 文件夹中的包。
  • 我没有使用过 PyCharm,但是使用 venvs 的 TL;DR 是您可以在该特定 venv 中安装任何库的任何版本,而不会影响您的全局 python,例如,您可以拥有 numpy 1.8 .0 在 venv 中,numpy 1.8.2 在不同的 venv 中,如果您安装在根 python 文件夹中,则不可能有同一库的不同版本

标签: python pycharm package interpreter


【解决方案1】:

不同之处在于,与不依赖上下文的基本解释器不同,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

我个人更喜欢第二种选择。

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 2021-04-01
    • 2020-04-18
    • 2021-09-25
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多