2012-05-29 14 views
6

Pycharm'ın problemle ilgili bir şey yapmamasını ya da benim içmem. İşte python modüllerini diğer paketlerden içe aktarırken sorun (pycharm çözümlenmemiş referans verir)

bir benim klasör düzeni ve üç kod dosyalarının ekran görüntüsü: Ben pencerelerde pycharm kullanıyorum

screenshot

ve "my_working_directory" Benim çalışma dizinidir. Ekran görüntüsünde, "paket2.mod2'den" mod1.py'de "çözümlenmemiş referans" anlamına gelen altı çizili olduğunu görebilirsiniz. Ben mod1.py çalıştırmayı denediğinizde

alıyorum: Ben main.py çalıştırdığınızda

C:\Python27\python.exe C:/Users/Robert/PycharmProjects/play/my_working_directory/package1/mod1.py 
Traceback (most recent call last): 
    File "C:/Users/Robert/PycharmProjects/play/my_working_directory/package1/mod1.py", line 1, in <module> 
    from package2.mod2 import SomeClass 
ImportError: No module named package2.mod2 

alıyorum:

C:\Python27\python.exe C:/Users/Robert/PycharmProjects/play/my_working_directory/main.py 
hi 

anlamıyorum neden bir eser ve diğer değil .

Temel sorun, pycharm'ın otomatik tamamlama yapmamasını ve mod1'den paket 2'yi algılayamamasıdır. Bu büyük bir sorundur çünkü package1 benim view paketimdir, package2 benim modellerim veya utils veya lib paketidir (büyük model kontrolörde). (örnek https://github.com/coto/gae-boilerplate/blob/master/web/handlers.py pycharm, lib.? import? ifadelerinden herhangi birini algılamıyor. (çözümlenmemiş başvuruda bulunuluyor)

Neler olup bittiğini bilen var mı? Bu, paketleri içe aktarmanın en iyi yolu mu? Otomatik tamamlamayı olması

"my_working_directory" başka init .py dosyasını yaparak bir paket haline getirilmiş olmalı

+1

Bunu eklemelisiniz. python yolu. package1'i ana bilgisayardan görebilirsiniz, fakat mod1'i içe aktarırken mod1'de olursunuz, package2 paketindeki değil, ana klasörde bulunduğu için package2 paketini göremez. – GP89

+1

@ GP89 "python yolunuza ekleyin", "ne" nedir? C: \ Kullanıcılar \ Robert \ PycharmProjects \ play \ my_working_directory \? IDE'nin bunu benim için eklemek benim işim olmalı? ya da tüm projelerim için Windows yolum ayarları ile uğraşmalıyım> özellikler> gelişmiş ayarlar> ortam değişkenleri –

+4

Ah, pycharm> ayarları> proje yapısı altında buldum, proje kökünü değiştir/oynat/oynat /çalışma dizini !!! Bunu çözmemde bana yardımcı olduğu için çok şey var. –

cevap

2

o C olabilir:??/Users/Robert/PycharmProjects/oynatma sizin %PYTHON_PATH% değil

+0

Merhaba Jakob, bence bir şeylere bağlı olabilirsiniz. Sys.path dosyasını mod1.py ve main.py'ye ekledim. Sonra mod1.py koştum ve yolu kaydettim. Sonra main.py koştum ve yolu kaydettim. İki yol kümesinin farkı: set (['C: \\ Kullanıcılar \\ Robert \\ PycharmProjects \\ play \\ my_working_directory \\ package1']) set (['C: \\ Kullanıcılar \\ Robert \ \ PycharmProjects path1 for i in alıyorum MOD1 olarak)] ' path1 = sys.path –

+0

\\ my_working_directory oynamak \\: i "oynamak" eğer: baskı i C: \ Users \ Robert \ PycharmProjects oyun \ \ my_working_directory \ package1 C: \ Kullanıcılar \ Robert \ PycharmProjects \ play –

+0

ana.py alıyorum: i için yol2 içinde: i "oynamak" eğer: baskı i C: \ Users \ Robert PycharmProjects C çalma \ my_working_directory \ \: \ Users \ Robert \ PycharmProjects \ –

İlgili konular