Özel PYTHONPATH VM ve PyCharm ile nasıl yapılandırılır?


86

Vagrant VM ile iletişim kurmak için Python eklentisi ve Uzaktan Yorumlayıcı özelliği ile IntelliJ kullanıyorum . Uzak yorumlayıcıyı sanal makinemin yorumlayıcısını kullanmak için doğru şekilde ayarlar. Ancak, sanal makinemde özel bir PYTHONPATH kullanıyorum ve IntelliJ'in bu yolu tanımasını ve geliştirme sırasında bu yola modülleri dahil etmesini istiyorum.

IntelliJ / PyCharm'ın uzak yorumlayıcısını sanal makinede özel bir PYTHONPATH kullanacak şekilde nasıl yapılandırabilirim?


Tam olarak bu sorunu yaşıyorum, ancak ortak bir plan izleyen birçok projem var ve şu anda (Emacs'ta) her şeyi dinamik olarak kuruyorum. Pycharm'da proje bazında kurmak bir yük gibi görünüyor.
AdamC 3

Yanıtlar:


125

PyCharm 5 (veya 2016.1) için şunları yapabilirsiniz:

  1. Tercihler> Proje Yorumlayıcı'yı seçin
  2. tercüman seçicinin sağında bir "..." düğmesi vardır, tıklayın
  3. "diğer ..." seçeneğini seçin
  4. yeni bir "Proje Yorumlayıcıları" penceresi aç
  5. en sağdaki düğmeyi seçin ("seçilen yorumlayıcı için yolları göster" adlı)
  6. "Yorumlayıcı Yolları" penceresi açılır
  7. "+" düğmesine tıklayın> istediğiniz PYTHONPATH dizinini (python modüllerini içeren klasör) seçin ve Tamam'a tıklayın
  8. Bitti! Tadını çıkar!

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin görüntü açıklamasını buraya girin


Projemde yaptığım şey bu, çok can sıkıcı. A projem, ortak proje, proje testim var. Proje testi altında birim testleri çalıştırmak için proje bağımlılıkları ekledim, böylece proje testi A projesine ve ortaklara bağlı, ancak yine de A'dan ve PYTHONPATH'a ortak klasörleri manuel olarak eklemem gerekiyor.
thinkanotherone

Bu, dizini söz konusu yorumlayıcı için genel PYTHONPATH'a ekleyecektir, değil mi? Sadece proje değil mi?
Ray

@Ray evet, global yorumlayıcı ayarlarını değiştirecek gibi görünüyor. Ancak farklı projeler için farklı virtualenv kullanabilir ve bunlar için farklı PYTHONPATH belirleyebiliriz.
phil

Önce yorumlayıcıyı projenizin tercümanı olarak ayarlamanız gerektiğini unutmayın, aksi takdirde en soldaki düğme devre dışı
kalır

OSX'te, Cmd + Shift + Period, seçme iletişim kutusunda gizli klasörleri gösterir (örneğin / usr) - çünkü sadece yolu yazmanın bir yolu yok gibi görünüyor.
Flash

83

PYTHONPATH'ınızı düzenleme veya kod incelemesi için içe aktarma çözüm sorunlarını düzeltme talimatları aşağıdaki gibidir:

  1. Tercihleri ​​Aç (Mac'te klavye kısayolu ⌘,).

Menüden Ayarlar'a nasıl gidilir

  1. Aşağıdaki Project Structuresol taraftaki kenar çubuğuna bakınProject: Your Project Name

  2. Sağ kenar çubuğuna modülleri ekleyin veya kaldırın

Pycharm 4.5'te Proje Yapısı Ayarları

DÜZENLE : Bu ekran görüntüsünü PyCharm 4.5 için güncelledim


Bu hala geçerli mi? En son PyCharm profesyoneline sahibim ama bu kategorilerin çoğunu kaçırıyorum ... Proje Yapısı dahil! Ama bunu gönderdiğiniz için teşekkürler !!!
R Claven

1
Merhaba, en son sürüm olan PyCharm 4.5 için ekran görüntüsünü güncelledim. Kenar çubuğundaki ayarları yeniden düzenledikleri anlaşılıyor.
Bjorn

Aslında size BÜYÜK bir teşekkür borçluyum. Proje ayarları yerine "varsayılan ayarlarla" uğraşıyordum. Buradaki cevabınız bunu anlamama yardımcı oldu ve sonra birçok tutarsızlığı çözdüm ve işe yaradı. TEŞEKKÜR EDERİM!
R Claven

Bunu küresel olarak yapmanın bir yolu var mı? açtığım her projeye /Library/Python/2.7/site-packages ve /usr/local/lib/python2.7/site-packages ekleyerek pis kokular.
jeremyjjbrown

Evet @jeremyjjbrown, bunu "Proje Yorumlayıcı" üzerine tıklayarak ve istediğiniz site paketlerinin bulunduğu yorumlayıcı yolunu seçerek yapabileceğinizi düşünüyorum. Bu soru sadece projeye özel paketleri projelerine sunmanın cevabıydı. Tüm deps projenizi pycharm'a eklemek için bir requirements.txt bile kullanabilirsiniz.
Bjorn

16

Benim için çözüm gitmek oldu

Run > Edit Configuration > Defaults > Python

sonra yönet

  • "PYTHONPATH'a içerik kökleri ekleyin" ve
  • "PYTHONPATH'a kaynak kökü ekle"

onay kutuları ve "Çalışma dizini" alanını ayarlama.

Kendi Çalıştır / Hata Ayıklama Yapılandırmalarınızı kurduysanız, şu adrese gitmek isteyebilirsiniz:

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

ve orada düzenleyin.

Benim sorunum, tüm depomun PyCharm 2016.2 projeme dahil edilmesini istememdi, ancak yalnızca bir alt klasör gerçek python kaynak kodu kökü idi. Klasörü sağ tıklayarak "Kaynak Kök" olarak ekledim ve ardından

Mark directory as > Source Root

Ardından "PYTHONPATH'a içerik kökleri ekle" seçeneğinin işaretini kaldırın ve Çalıştır / Hata Ayıkla yapılandırma menüsünde "PYTHONPATH'a kaynak kök ekle" seçeneğini işaretleyin. Daha sonra şu şekilde klasör yolunu kontrol ettim:

import sys
logger.info(sys.path)

Bu çıktı:

[
    '/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'
]

Ancak, düzeltme olmadan şunları söyledi:

[
    '/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'
]

Bu da proje kök klasörünün dahil olduğu anlamına geliyordu. Bu benim için yolu alt üst etti.


Teşekkürler, Python uzmanı değilim ve her zaman hangi içe aktarma yollarına ulaşabileceğime nasıl göz atacağımı merak ettim! (bu sys.pathkısım)
Rastikan

Bu ideal değildir çünkü her çalıştırma yapılandırmasının güncellenmesi gerekir .
StephenBoesch

@javadba Tüm yapılandırmalar için çalışmasını istiyorsanız, Run > Edit Configuration > Templates > Pythonbunun yerine adresine gidin .
André C. Andersen

@ AndréC.Andersen thx! Hatta hiç baktım en şablonları önce.
StephenBoesch

13

Bu, PyCharm Topluluğu 2019.1 ile yapıldı.

  1. Proje Ayarlarına Git Ayarlar
  2. Proje Yapısına gidin ve eklemek istediğiniz dizine sağ tıklayın ve "Kaynaklar" a tıklayın Proje Yapısı - kaynak ekleyin

Bu, dizini python yolunuza eklemelidir Proje Yapısı - kaynakları ekledikten sonra


3

Doğru yanıt için bir güncelleme phil pycharm daha yeni sürümleri için, sağlanan (örn 2019,2).

Git Dosya> Ayarlar ardından seçmek ve projeyi bulmak Proje Tercüman . Şimdi seçilen proje yorumlayıcısının sağındaki dişli düğmeyi tıklayın (eskiden bir ... ).

görüntü açıklamasını buraya girin

Açılır menüden Tümünü Göster ... öğesini seçin ve açılan iletişim kutusunda bir klasör ve iki alt klasörün bulunduğu simgeye tıklayın.

görüntü açıklamasını buraya girin

Mevcut yorumlayıcı yolları ile bir iletişim kutusu sunulur, bir tane daha eklemek için + ' ya tıklayın .


TEŞEKKÜR EDERİM!!! Onun ortamı alma ile mücadele etmekte olan bir meslektaşım ve mayın maç için ayarlayabilir ve ben hiçbir adımları yapmanın hatırlama, ama (ki hatta "kullanıcı tarafından eklenen" diyor) olduğunu orada önemli bir yol var.
Drarok

2

Deneyimlerime göre, bir PYTHONPATH değişkenini kullanmak genellikle yanlış bir yaklaşımdır, çünkü pencerelerde VENV ile iyi bir şekilde çalışmaz. Yükleme sırasında PYTHON, PYTHONPATH'ı yola önceden ekleyerek yolu hazırlayacaktır, bu da dikkatle hazırlanmış Venv'inizin tercihli olarak global site paketlerini getirmesine neden olabilir.

PYTHON yolunu kullanmak yerine, ilgili site paketleri dizinine bir pythonpath.pth dosyası ekleyin (özel pitonların ara sıra onları farklı konumlarda aramasına dikkat edin, örneğin .pth dosyaları için python.exe ile aynı dizinde enthought görünüyor) her sanal ortam. Bu bir PYTHONPATH gibi davranacak, sadece python kurulumuna özel olacaktır, böylece her python kurulumu / ortamı için ayrı bir tane olabilir. Python kurulumunuz olarak VENV'in python'una giderseniz, Pycharm VENV ile güçlü bir şekilde bütünleşir.

.Pth dosyalarıyla ilgili daha fazla ayrıntı için örneğin bu SO sorusuna bakın ....



0

Bunu tercümanın diyalog kutusuna giderek yapabilirsiniz. Kullandığınız yorumlayıcıya tıklayın ve altında, biri Paketler, diğeri Yol adında iki sekme görmelisiniz.

Yol'a tıklayın ve ona VM yolunuzu ekleyin.


Uzak yorumlayıcıya tıkladığımda ve bir Sınıfyolu eklediğimde, uzak bir dizin (gibi /home/vagrant/mydir) belirttiğimde şikayet ediyor . Yola bir şeyle başlamam gerekiyor mu? Arayüzüm biraz farklı çünkü IntelliJ'i Python eklentisiyle kullanıyorum ve yardımcı olursa PyCharm değil.
baalexander

1
Pekala, SSH yorumlayıcısına gidebilir ve serseri dosyasından malzemeleri yükleyebilirsiniz, orada bir seçenek.
Games Brainiac


0

Intellij v2017.2'de şu adreslere gidebilirsiniz:

run > edit configurations > click ... next to the field 'Environment variables' > click the green + sign

İsim = PYTHONPATH

değer = your_python_path

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.