Bir modül yazdım ( my_mod.py
klasörde bulunan bir dosya dosyası my_module
). Şu anda, cool_script.py
klasörde bulunan dosya üzerinde çalışıyorum cur_proj
. File - open kullanarak klasörü PyCharm'da açtım (ve bu nedenle bir PyCharm projesi olduğunu varsayıyorum).
ProjectView (CMD-7), benim proje cur_proj
(kırmızı) ve "Dış Kütüphaneler" altında görebilirsiniz my_module
. Cool_script.py'de yazabilirim
from my_module import my_mod as mm
ve PyCharm my_mod için bile önerilerde bulunuyor. Çok uzak çok iyi.
Ancak, cool_script.py çalıştırmaya çalıştığımda, PyCharm bana "my_module adında bir modül yok"
Bu bana tuhaf geliyor, çünkü
A) terminalde (OS 10.10.2), python'da, modülü problemsiz olarak alabilirim - .bashrc'deki PYTHONPATH'de karşılık gelen bir giriş
B) PyCharm'da - Ayarlar - Proje cur_proj - Proje Tercümanı - Python yorumlayıcısının yanındaki CogWheel - daha fazlası - seçilen yorumlayıcı simgesinin yollarını gösterir, PYTHONPATH'ın yolları görünür (bence düşündükleri gibi)
Bu nedenle, cool_script.py dosyasını çalıştırmayı denediğimde neden hatayı alıyorum? - Neyi özlüyorum?
Notlar:
- Ben am Farklı / özel piton sürümünü ilan etmiyoruz cool_script.py üstündeki
- Yolunun doğru olduğundan emin oldum
my_module
- Ben koymak
__init__.py
dosyaları (boş dosyaları) hemmy_module
vecur_proj
- Kullanmıyorum
virtualenv
Eki 2015-Şub-25
PyCharm'da Çalıştır - Yapılandırmaları Düzenle'ye gittiğimde, mevcut projem için, onay işaretli iki seçenek vardır: " PYTHONPATH'a içerik kökleri ekle " ve " PYTHONPATH'a kaynak kökleri ekle ". İkisi de işaretlenmediğinde modülümü yükleyebilirim.
Şimdi çalışıyor - ama neden ?
Başka sorular ortaya çıktı:
- "İçerik kökleri" nedir ve "kaynak kökleri" nedir? PYTHONPATH'a bir şey eklemek neden onu bir şekilde kırıyor?
- Bu seçeneklerin her ikisinin de işaretini kaldırmalı mıyım (bu nedenle varsayılan olarak, yalnızca projeye özgü yapılandırmalarda değil (Çalıştırma / Hata Ayıklama Yapılandırmaları iletişim kutusunun sol paneli)?
Enable Django Support
ayarların işaretini Languages & Frameworks -> Django
kaldırmak. İçe aktarma sorunlarına neden olan bir django konsolu açıyordu.
from foldername.mymodule import mymethod
. Yapmam gereken başka bir şey , modülünüze ulaşmak için kullanacağınız tüm klasörlere boş _init .py klasörünü eklemektir, böylecefrom parentfolder.childfolder.mymodule ...
iki klasörde init'e ihtiyacınız olacaktır. Klasörlerin birbirlerine göre nerede bulunduğuna bağlısys.path
olarak, bu cevapta