2013-06-19 45 views
44

我使用IntelliJ與Python插件和Remote Interpreter feature與我的Vagrant VM進行通信。它正確設置遠程解釋器來使用我的虛擬機的解釋器。但是,我在我的虛擬機中使用了自定義的PYTHONPATH,並且我希望IntelliJ能夠識別該路徑,並在開發時將模塊包含在該路徑中。如何使用VM和PyCharm配置自定義PYTHONPATH?

如何配置IntelliJ/PyCharm的遠程解釋器在虛擬機上使用自定義的PYTHONPATH?

+0

我正是這個問題,除了我有許多項目遵循一個共同的方案,現在(在Emacs中)我動態地設置了一切。在Pycharm中以每個項目爲基礎進行設置似乎是一種負擔。 – AdamC

回答

0

那麼你可以通過翻譯的對話框來做到這一點。點擊你使用的解釋器,在它下面,你會看到兩個標籤,一個叫做Packages,另一個叫Path。

單擊路徑,並添加您的VM路徑。是

+0

當我點擊遠程解釋器並添加一個Classpath時,它會在我指定一個遠程目錄(比如'/ home/vagrant/mydir')時發出抱怨。我需要用某種東西來介紹路徑嗎?我的界面有點不同,因爲我使用IntelliJ與Python插件,而不是PyCharm,如果有幫助。 – baalexander

+1

那麼你可以去SSH解釋器,並加載來自vagrant文​​件的東西,它是一個選項。 –

62

說明編輯PYTHONPATH或固定進口解決問題的代碼檢查如下:

  1. 打開首選項(在Mac系統中的快捷鍵是⌘,)。

How to get to Settings from Menu

  • 查找Project Structure在側邊欄上的左下Project: Your Project Name

  • 添加或刪除模塊在右側欄中

  • Project Structure Settings in Pycharm 4.5

    編輯:我已經更新了這個截屏PyCharm 4.5

    +0

    這仍然適用?我應該有最新的PyCharm專業人士,但我錯過了很多這些類別..。包括項目結構! 但是,謝謝你張貼這個! –

    +1

    嗨,我已經更新了最新版本的PyCharm 4.5截圖。看起來他們重新組織了側邊欄中的設置。 –

    +0

    其實我欠你一個巨大的謝謝。我在搞「默認設置」而不是項目設置。你在這裏的答案幫助我意識到這一點,然後我解決了許多差異,並且工作。謝謝! –

    65

    對於PyCharm 5(或2016.1),您可以:

    1. 選擇Preferences>項目解釋
    2. 解釋程序選擇權有一個「...」按鈕,單擊它
    3. 選擇‘更多...’
    4. 彈出一個新的‘項目口譯’窗口
    5. 選擇最右端的按鈕(命名爲「所選解釋顯示路徑」)
    6. 彈出一個「解釋路徑」窗口
    7. 點擊「+」 BUTTOM>選擇所需PYTHONPATH目錄(它包含python模塊的文件夾)並單擊確定。
    8. 完成!好好享受!

    enter image description here

    enter image description here

    enter image description hereenter image description here

    +0

    這就是我在我的項目中做的事情,所以很煩人。我有項目A,項目通用,項目測試。爲了在項目測試下運行unittests,我添加了項目依賴關係,所以項目測試依賴於項目A和常見項目,但是我仍然必須手動將來自A和Common的文件夾添加到PYTHONPATH中。 – thinkanotherone

    +0

    這會將該目錄添加到該解釋器的全局PYTHONPATH中嗎?不只是項目? – Ray

    +0

    @Ray是的,似乎它會改變全局解釋器設置。但是我們可以爲不同的項目使用不同的virtualenv,併爲它們設置不同的PYTHONPATH。 – phil

    1

    根據我的經驗,使用PYTHONPATH變量通常都是錯誤的方法,因爲它在Windows上不能很好地與VENV一起玩。裝載PYTHON將通過將PYTHONPATH預先添加到路徑來準備路徑,這可以使您精心準備的Venv優先獲取全局網站包。

    不使用PYTHON路徑,而是在相關的site-packages目錄中包含一個pythonpath.pth文件(儘管要注意自定義python偶爾會在不同的位置查找它們,例如enthought在python.exe中查找它的目錄。每個虛擬環境)。這將像PYTHONPATH一樣,只會針對python安裝,因此您可以爲每個python安裝/環境單獨安裝一個。如果您只是將VENV的python作爲您的python安裝,Pycharm與VENV強烈集成。

    參見例如this SO question對.pth文件的更多細節....

    +0

    這爲我工作。 – nyxee

    7

    對我來說,解決辦法是去

    Run > Edit Configuration > Defaults > Python 
    

    然後管理

    • 「內容根PYTHONPATH添加」 和
    • 「將源根目錄添加到PYTHONPATH」

    複選框以及設置點擊「工作目錄」字段。

    如果你已經建立了自己的運行/調試配置,那麼你可能要到

    Run > Edit Configuration > Python > [Whatever you called your config] 
    

    裏編輯它。

    我的問題是,我想我的整個存儲庫包含在我的PyCharm 2016.2項目中,但只有一個子文件夾是實際的python源代碼根目錄。我說這是「源根」通過右鍵單擊文件夾,然後

    Mark directory as > Source Root 
    

    然後取消選中「內容根添加到PYTHONPATH」,並檢查「源根目錄添加到PYTHONPATH」,在運行/調試配置菜單。然後我做檢查的文件夾路徑功能:

    import sys 
    logger.info(sys.path) 
    

    這outputed:

    [ 
        '/usr/local/my_project_root/my_sources_root', 
        '/usr/local/my_project_root/my_sources_root', 
        '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
        '/usr/lib/python3.4/lib-dynload', 
        '/usr/local/lib/python3.4/dist-packages', 
        '/usr/lib/python3/dist-packages' 
    ] 
    

    然而,如果沒有修復它說:

    [ 
        '/usr/local/my_project_root/my_sources_root', 
        '/usr/local/my_project_root',     <-- NOT WANTED 
        '/usr/lib/python3.4', 
        '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
        '/usr/lib/python3.4/lib-dynload', 
        '/usr/local/lib/python3.4/dist-packages', 
        '/usr/lib/python3/dist-packages' 
    ] 
    

    這意味着我得到了包括項目的根文件夾。這弄糟了我的路線。

    +0

    謝謝你,我不是Python專家,alwasy想知道如何看看我能達到的進口路徑! (即'sys.path'部分) – Rastikan

    相關問題