2015-12-29 50 views
11

我拥有最新的PyCharm CE并正在与virtualenv一起使用它。我已将翻译定义为virtualenv中的翻译员。 PyCharm中的项目解释器窗口列出了我已安装的所有软件包。我通过运行pip freeze > requirements.txt并手动运行包来确认了这一点。PyCharm无法在virtualenv中找到软件包

我的问题是,PyCharm不会找到一定包括在其编辑器窗口,就像Flask-Login

from flask.ext.login import current_user, login_user, logout_user, login_required的包括current_user, login_user, logout_user, login_required都标记为未解决的引用。

我错过了什么吗?

+2

我曾经有过这个问题,这只是JetBrains公司被跛。尝试'文件 - >无效缓存'并重新启动PyCharm。您可能需要等待几分钟才能重建缓存 – wim

+0

对我无效。 – ruipacheco

回答

22

问题可能在于PyCharm为您的虚拟环境拾取错误的“解释器路径”。去这里:

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) 

现在你在这(诚然曲折找到)的位置的时候,你应该看到正被此解释道。如果我的理论是正确的,这些都指向全球系统位置。要添加虚拟环境路径,您应该单击+按钮并添加虚拟环境中存在的相应路径。完成此操作后,最好选择全局系统路径并点击-将其删除。点击apply,然后转到File -> Invalidate caches/Restart重新加载PyCharm。

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

+0

事实上这是正确的程序(尽管PyCharm在这些事情上是如此的原始,这在某种程度上是荒谬的)。 – gented

+0

这是疯了。感谢您指出了这一点。 – newlog

0

打开Preferences -> Project -> Project Interpreter,你看到模块吗?

如果是,您可能会在项目中的某个地方使用另一个文件,名称与flask.ext.login相同,这会阻止pycharm查找实际模块。

如果没有,你可以在你的...旁边解释单击并选择more...,选择您的解释,并在底部(过滤器旁),单击Show paths for the selected interpreter,您可以添加模块的路径存在。

+0

尝试了你的建议,但它不适合我。我甚至用pypy创建了一个新的virtualenv,但是仍然没有找到相同的包含。 – ruipacheco

+0

对不起,我不知道如何解决你的问题。 –

3

在PyCharm的(2016年1月4日在我的情况)的最新版本:

  • 设置
  • 项目:在右侧项目
    • 项目解释
    • 的名字会出现做一个下拉菜单,你可以选择口译员。应该有venv选项。下面更好的解释

见图片(像他们说,1张价值数千字)

Setting python interpreter

相关问题