【问题标题】:PyCharm with PyenvPyCharm 与 Pyenv
【发布时间】:2017-04-29 00:14:38
【问题描述】:

如何在 Pycharm 2016.3 中使用 Pyenv virtualenv?在早期版本的 Pycharm 中,我可以轻松设置本地解释器来指向我机器上安装的任何内容。

我的第一个想法是在项目的根目录上添加.python-version 文件。我安装了 Pyenv virtualenv,因此这将自动激活并以正确的环境运行项目。但是,Pycharm 仍然没有看到正确的解释器,导致它出现导入和语法错误。

如何在新的 PyCharm 2016.3 中选择我的本地 Pyenv 我以前能够将路径设置为变量,现在我只能使用下拉菜单浏览路径。它似乎没有显示隐藏文件,例如 pyenv ~./.pyenv/versions{project} 的默认路径。

【问题讨论】:

  • 使用单个 Python 解释器仍然很容易指定(见下文),但我如何指定所有解释器(即所有解释器都由 pyenv global 列出)?当我使用Tox 时,我需要这个来测试几个版本。这需要在运行 tox 的 shell 中运行 source <(pyenv init -) 或类似的 according to the docs

标签: python pycharm


【解决方案1】:

在听取了 Judge 先生关于使用 pyenv 的指导后,我偶然发现了一种将 pyenv 中的解释器引入现有 PyCharm(2020.2.2,如果它重要)项目,而不会破坏.idea 目录。

在使用任何其他环境类型(Pipenv、Poetry 等)之前,首先打开Virtual Environment 选项: 选择Exiting environment,然后使用Interpreter: 下拉列表右侧的[...] 按钮导航到您的pyenv shims 之一。然后点击Make available to all projects

你现在可以去 Pipenv 或 Poetry Environemnt (Plugin) 来引用那个引入的解释器。

【讨论】:

  • 我不确定我是否理解您的回答。您是指开头的pipenv 而不是pyenv?另外,我不明白为什么“垫片 python”可以作为 virtualenv 使用,而它更像是“系统解释器”而不是 virtualenv。
【解决方案2】:

获取pyenv-virtualenv 插件以获得更多项目专用环境。

然后,为项目创建一个新环境:(假设我们使用 pyenv 安装了 python-3.7.1,我们将使用它)

$ pyenv virtualenv 3.7.1 projectName-3.7.1

此命令为我们的环境生成文件夹。

打开pyCharm使用v2018.3.1):

创建新项目 > 现有解释器

现在您可以输入环境的路径:

~/.pyenv/versions/projectName-3.7.1/bin/python3

然后按创建.. 就是这样。

如果已经存在项目:

文件 > 设置 > 项目:项目名称 > 项目:口译员

同样,您可以像上面一样键入环境的path。所以你会看到安装在这个环境中的包。

如果你想在命令行上使用相同版本的python和环境,那么你必须激活环境

$ pyenv activate projectName-3.7.1

命令。

有关pyenv-virtualenv的更多命令,您可以查找参考表。

【讨论】:

【解决方案3】:

就个人而言,我在一起使用pyenvpipenv 时获得了最好的体验。到目前为止,我为此使用了单独的命令,而不是使用 pyenv-virtualenv 插件,但这个提示也应该支持它。

我开始一个新项目的工作流程:

  1. 创建文件夹并切换到该文件夹​​:
    mkdir new_project ; cd new_project
  2. 设置所需的本地 pyenv 版本:
    pyenv local 3.8.0
  3. 创建一个空的pipenv 虚拟环境,只使用该本地版本:
    pipenv --python $(pyenv which python)

现在棘手的部分来了:PyCharm 支持 Pipenv 作为解释器,但在初始解释器选择后它不再自动识别它(在项目启动/第一次打开项目时自动发生)。
所以 - 如果您刚刚创建了新的项目文件夹(尚未创建 PyCharm 的 .idea/ 文件夹),它会很好地识别项目的 Pipenv-Virtualenv 并将其设置为项目解释器,自动:

如果已经有.idea/文件夹,那就没那么容易了,因为PyCharm的GUI只支持创建一个新的Pipenv环境,但是你还有一个选择:

  1. 关闭 PyCharm,删除 .idea/ 文件夹并重新打开 PyCharm 中的项目文件夹。
    • 这也会删除其他项目设置,但对于新环境来说应该不是太重要。
  2. 再次在 PyCharm 中打开该文件夹,它将识别您的 Pipenv virtualenv。

【讨论】:

  • 感谢您的指导。我能够弄清楚如何强制将pyenv shim 引入现有的 PyCharm 项目,而不会破坏.idea 目录。我的补充是在此页面某处的答案中。
【解决方案4】:

在 Pycharm 2017.3 版本中,您可以转到 Pycharm -> Preferences -> Project -> Project Interpreter -> <project_name> -> python解释器文本框右侧的设置按钮 -> 添加本地

这将打开一个新窗口,其中 virtualenv Environment 作为左侧的选项之一。选择它后,您将可以选择创建新的 virtualenv 环境或使用现有的虚拟环境。在下拉文本框旁边,您可以单击“...”并浏览到使用 pyenv 创建的现有 virtualenv 并选择它。当您从 Pycharm 启动终端时,它将选择此 virtualenv,并在创建该 virtualenv 时使用设置的相应 python 解释器。

【讨论】:

  • 刚刚接受了您的答案,因为它比现有答案更好。
  • 一个改进的建议是不要将 pyenv python 版本用作虚拟环境,而是将其用作新版本的 基本解释器。这将允许您为每个 python 版本创建多个虚拟环境。
  • @EliadL,您只需浏览到 .pyenv 目录并在选择基本解释器时选择相关的/bin/python 即可实现。
  • @Def_Os 这与我的建议有何不同?
  • @EliadL,我以为你的印象是目前不可能,因此我的指示。
【解决方案5】:

您没有提及您使用的是什么操作系统,这与此处相关。

如果是 OS X 或 macOS,您可以在文件选择对话框中按 Shift+Cmd+G(当您选择新本地解释器的位置)手动输入路径。 (这是一个标准的 macOS 快捷方式,适用于任何本机文件选择对话框。)

【讨论】:

  • 感谢我在 Mac 操作系统中
  • 选择所需解释器的快捷键是 CMD + ,
猜你喜欢
  • 2014-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多