PyCharm 在 vi​​rtualenv 中找不到包

PyCharm cannot find the packages in virtualenv

我有最新的 PyCharm CE,我正在 virtualenv 中使用它。我在virtualenv中将解释器定义为解释器。 PyCharm 中的 Project Interpreter window 列出了我安装的所有包。我通过 运行 pip freeze > requirements.txt 和 运行 手动通过软件包确认了这一点。

我的问题是 PyCharm 在其编辑器 windows 中找不到某些包含,例如 Flask-Login:

from flask.ext.login import current_user, login_user, logout_user, login_required 中,包含 current_user, login_user, logout_user, login_required 都被标记为未解析的引用。

我是不是漏掉了什么?

打开Preferences -> Project -> Project Interpreter,看到那里的模块了吗?

如果是,您的项目中可能有另一个与 flask.ext.login 同名的文件,这会阻止 pycharm 找到实际的模块。

如果没有,您可以点击您的解释器旁边的 ... 和 select more...,select 您的解释器和底部(过滤器旁边),单击Show paths for the selected interpreter,您可以在那里添加模块的路径。

问题可能在于 PyCharm 为您的虚拟环境选择了错误的 'Interpreter Paths'。去这里:

PyCharm (menu) -> Preferences (Menu option)
               -> Project: <name> (Dropdown) 
               -> Project Interpreter (Menu option)
               -> 'Settings' button (Looks like a gear)
               -> More (Menu option)
               -> Select your virtualenv interpreter
               -> Click 'Show paths for interpreter' button (on bottom of list window)

既然您位于这个(公认的曲折发现的)位置,您应该会看到该解释器正在使用的路径。如果我的理论是正确的,这些都指向全球系统位置。要添加虚拟环境路径,您应该单击 + 按钮并添加存在于您的虚拟环境中的相应路径。完成此操作后,最好 select 全局系统路径并单击 - 将其删除。单击应用,然后转到 File -> Invalidate caches / Restart 重新加载 PyCharm。

这应该让您的解释器指向您安装到 virtualenv 中的库的正确位置,并且您应该不会再遇到导入错误。请注意,即使使用此修复,您也不会在 Project Interpreter 下看到您的库,但应该正在加载它们。

在最新版本的 PyCharm 中(在我的例子中是 2016.1.4):

  • 设置
  • 项目:项目名称
    • 项目口译员
    • 在右侧会有一个下拉菜单,您可以在其中选择解释器。应该有venv选项。

请参阅下图以获得更好的解释(正如他们所说,一张图片价值数千字)

即使在 Nathaniel Ford 和 dieend 的 correct 建议之后,我也面临同样的问题(仍未找到包含)。确保您的 run/debug 配置正确 python 选择的解释器:

转到/venv/bin/并检查所有激活脚本。你的venv路径可能是错误的。

我无法将现有的虚拟环境分配给我的项目,但是在

File -> Settings -> project interpreter-> show all-> click on '+'

创建一个新的虚拟环境或者我们可以选择现有的虚拟环境,我可以分配和使用现有的虚拟环境。

对我来说,最简单的解决方案是在根目录中打开项目(我的项目有服务器和客户端目录,因此根目录包含这两个目录)。当您在根目录中打开项目时,它能够找到依赖项而不会弄乱 pycharm 设置,因为它按照惯例使用它们。

另请注意,已接受的答案不再适用于 PyCharm 菜单结构。现在是 File > Settings > Project > Project Interpreter > Gear Icon > Show All

以下步骤详细介绍了“核”选项:

  1. 删除你的项目虚拟环境目录(例如/venv
  2. 删除此 post 顶部列出的路径可访问的菜单选项中列出的所有其他解释器。
  3. 关闭PyCharm
  4. 删除项目文件夹中的 .idea 目录
  5. 重新启动 PyCharm,打开项目文件夹。
  6. 完成配置新解释器的过程。

这几乎可以让您从头开始。

我注意到每次我打开一个不同的项目时它仍然有我之前正在处理的项目的 venv。

我做的是:

ctrl-alt-s(进入首选项),然后项目 Interpreter/settings(齿轮图标),显示全部,然后删除所有不是您当前项目的 venv 环境(使用 - 符号).重新启动,你应该可以开始了。

我最近在这个话题上苦苦挣扎,我对这个话题有两分钱。 纳撒尼尔福特的回答是好的,除了这部分:

               -> Select your virtualenv interpreter

我不清楚。

我用

试了几次
~/.virtualenvs/python-audition-2.9/bin/python

而它只适用于

~/.virtualenvs/python-audition-2.9/local/bin/python

注意到后一个路径中的.../local/...了吗?这对我来说真的很重要。并且不要忘记 File -> Invalidate caches / Restart 重新加载 PyCharm.

将虚拟环境中的 lib 目录添加到 PyCharm CE 设置中的源代码对我很有帮助。 我的步骤:

  1. 首选项 -> 项目: -> 项目结构

Scrin1

  1. Select 安装库的目录。就我而言,这是“lib”。

  2. 将目录标记为“来源”。

Scrin2

完成这些操作后,我所有的库都已正确导入到我需要的 py 文件中。