使用pipenv后,如何在pycharm中添加解释器

问题:
我用pyenv安装的python3.10,执行pyenv which python3.10显示:/Users/hxjs/.pyenv/versions/3.10.0/bin/python3.10
那系统级别的python解释器路径就是:/Users/hxjs/.pyenv/versions/3.10.0/bin/python3.10

我在项目下,使用pipenv --python 3.10给项目安装了python 3.10,并使用pipenv install给项目安装了依赖包,执行pipenv --venv显示:/Users/hxjs/.local/share/virtualenvs/ad_building-lpQIA7wN
那项目的虚拟环境路径就是:/Users/hxjs/.local/share/virtualenvs/ad_building-lpQIA7wN 此时我在pycharm中给项目添加解释器,base interpreter 是选择系统级别的python解释器路径还是应该选择项目的虚拟环境路径吗?为什么?

 

解答:

为什么选择 pyenv 安装的 Python 作为 base interpreter

当你在 PyCharm 中设置 Pipenv Environment 时,选择 pyenv 安装的 Python 作为 base interpreter 实际上是告诉 PyCharm 你想基于哪个 Python 版本来创建和管理你的 pipenv 虚拟环境。这里的关键点是:

  • base interpreter 是用来创建虚拟环境的基础 Python 版本。 当你在 PyCharm 中创建一个新的 Pipenv Environment 时,PyCharm 会使用这个 base interpreter 来初始化 pipenv 虚拟环境。这意味着虚拟环境将继承这个 base interpreter 的 Python 版本。

  • pipenv 创建的虚拟环境路径是虚拟环境的位置,而不是用来创建它的解释器的路径。 当你运行 pipenv --python 3.10 时,pipenv 会基于指定的 Python 版本(在这个案例中是通过 pyenv 管理的 3.10 版本)创建一个新的虚拟环境。这个虚拟环境位于 /Users/hxjs/.local/share/virtualenvs/ad_building-lpQIA7wN,但它是基于 /Users/hxjs/.pyenv/versions/3.10.0/bin/python3.10 创建的。

为什么不直接选择虚拟环境的路径作为 base interpreter

当你在 PyCharm 中配置项目解释器时,你实际上是在告诉 PyCharm 你的项目应该使用哪个 Python 解释器来运行代码。如果你直接使用虚拟环境路径作为项目解释器,这在技术上是可行的,因为虚拟环境本质上就是一个 Python 解释器的副本(加上一组特定的包)。但在使用 pipenv 的情况下,PyCharm 提供了一个更高级的集成方式,即通过识别 Pipfile 和 Pipfile.lock 来自动管理虚拟环境,而不是手动指定虚拟环境的路径。

结论

  • 在 PyCharm 中配置 Pipenv Environment 时,选择 pyenv 安装的 Python 解释器作为 base interpreter 是正确的做法。这告诉 PyCharm 你想基于哪个 Python 版本创建你的 pipenv 虚拟环境。

  • 一旦虚拟环境被 pipenv 创建,PyCharm 会自动使用这个环境(而不是你手动选择虚拟环境的路径)。这样,你就可以利用 pipenv 管理的所有便利,包括自动依赖管理和环境隔离。

posted @ 2024-04-22 14:44  一路向北321  阅读(53)  评论(0编辑  收藏  举报