2015-12-29 100 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

相關問題