我使用IntelliJ與Python插件和Remote Interpreter feature與我的Vagrant VM進行通信。它正確設置遠程解釋器來使用我的虛擬機的解釋器。但是,我在我的虛擬機中使用了自定義的PYTHONPATH,並且我希望IntelliJ能夠識別該路徑,並在開發時將模塊包含在該路徑中。如何使用VM和PyCharm配置自定義PYTHONPATH?
如何配置IntelliJ/PyCharm的遠程解釋器在虛擬機上使用自定義的PYTHONPATH?
我使用IntelliJ與Python插件和Remote Interpreter feature與我的Vagrant VM進行通信。它正確設置遠程解釋器來使用我的虛擬機的解釋器。但是,我在我的虛擬機中使用了自定義的PYTHONPATH,並且我希望IntelliJ能夠識別該路徑,並在開發時將模塊包含在該路徑中。如何使用VM和PyCharm配置自定義PYTHONPATH?
如何配置IntelliJ/PyCharm的遠程解釋器在虛擬機上使用自定義的PYTHONPATH?
那麼你可以通過翻譯的對話框來做到這一點。點擊你使用的解釋器,在它下面,你會看到兩個標籤,一個叫做Packages,另一個叫Path。
單擊路徑,並添加您的VM路徑。是
當我點擊遠程解釋器並添加一個Classpath時,它會在我指定一個遠程目錄(比如'/ home/vagrant/mydir')時發出抱怨。我需要用某種東西來介紹路徑嗎?我的界面有點不同,因爲我使用IntelliJ與Python插件,而不是PyCharm,如果有幫助。 – baalexander
那麼你可以去SSH解釋器,並加載來自vagrant文件的東西,它是一個選項。 –
說明編輯PYTHONPATH或固定進口解決問題的代碼檢查如下:
⌘,
)。查找Project Structure
在側邊欄上的左下Project: Your Project Name
添加或刪除模塊在右側欄中
編輯:我已經更新了這個截屏PyCharm 4.5
這仍然適用?我應該有最新的PyCharm專業人士,但我錯過了很多這些類別..。包括項目結構! 但是,謝謝你張貼這個! –
嗨,我已經更新了最新版本的PyCharm 4.5截圖。看起來他們重新組織了側邊欄中的設置。 –
其實我欠你一個巨大的謝謝。我在搞「默認設置」而不是項目設置。你在這裏的答案幫助我意識到這一點,然後我解決了許多差異,並且工作。謝謝! –
對於PyCharm 5(或2016.1),您可以:
這就是我在我的項目中做的事情,所以很煩人。我有項目A,項目通用,項目測試。爲了在項目測試下運行unittests,我添加了項目依賴關係,所以項目測試依賴於項目A和常見項目,但是我仍然必須手動將來自A和Common的文件夾添加到PYTHONPATH中。 – thinkanotherone
這會將該目錄添加到該解釋器的全局PYTHONPATH中嗎?不只是項目? – Ray
@Ray是的,似乎它會改變全局解釋器設置。但是我們可以爲不同的項目使用不同的virtualenv,併爲它們設置不同的PYTHONPATH。 – phil
在pycharm 5按照此, https://www.jetbrains.com/pycharm/help/configuring-python-interpreter-for-a-project.html
1)打開設置對話框,然後單擊項目翻譯頁面。
2)在「項目」窗格中,選擇所需的項目。
3)對於選定的項目,從可用的Python解釋器和虛擬環境列表中選擇SDK。
根據我的經驗,使用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文件的更多細節....
這爲我工作。 – nyxee
對我來說,解決辦法是去
Run > Edit Configuration > Defaults > Python
然後管理
複選框以及設置點擊「工作目錄」字段。
如果你已經建立了自己的運行/調試配置,那麼你可能要到
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'
]
這意味着我得到了包括項目的根文件夾。這弄糟了我的路線。
謝謝你,我不是Python專家,alwasy想知道如何看看我能達到的進口路徑! (即'sys.path'部分) – Rastikan
我正是這個問題,除了我有許多項目遵循一個共同的方案,現在(在Emacs中)我動態地設置了一切。在Pycharm中以每個項目爲基礎進行設置似乎是一種負擔。 – AdamC