PyDev

2011-04-08 18 views
8

'daki bağımlı projeden modül alınamıyor Muhtemelen burada gerçekten aptalca bir şey yapıyorum, ama bu beni çıldırtıyor.PyDev

Eclipse'de iki PyDev projem var. Bir proje, 'Analiz' diğerine 'PyCommon' bağlıdır. Analiz için proje referanslarına baktığımda, PyCommon'un kontrol edildiğinden ve PyCommon'daki Analiz öğelerinden referans aldığımda otomatik içe aktarma/kod tamamlama işlerinde kullandığımdan eminim.

Analizde bir modül yazmaya/çalıştırmaya çalışıyorum. Modül fhb/analiz/log_parsers.py'dir.

I/pycommon/tipleri FHB gelen eleman Orderstatus almaya çalıştığınız/ORDER_STATUS PyCommon projesinde ediyorum. Yani, benim ithalat beyanı, ithalat beyanı bir QuickFix düzeltme üzerinde Pydev tarafından otomatik yazılmıştır çünkü bu nerede

Pydev 'fhb.pycommon.types.order_status ithalat Orderstatus gelen'

açıkça bilir. Ben log_parsers.py ana işlevi çalıştırmayı denediğinizde yine de, ben bu olsun:

Traceback (most recent call last): File "/workspace/Analysis/src/fhb/analysis/log_parsers.py", line 6, in from fhb.pycommon.types.order_type import OrderType ImportError: No module named pycommon.types.order_status

Bu paketlerin tümü her projede uygun bir kaynak klasörüne ('src') altındadır.

Ayrıca, Analiz kesinlikle PyCommon referans olarak ayarlanmış olmasına rağmen, Analiz'in özelliklerinde PyDev-PYTHONPATH altına baktığımda, 'Kaynak Klasör' sekmesinin altında yalnızca Çözüm'ün kendi src klasörü belirir ve eğer görmemin tek projesidir. sana PYTHONPATH içine PyCommon yolunu eklemek zorunda yoksa gerçek modülleri ithal bulmak mümkün olmayacaktır inanıyoruz

cevap

0

'kaynak klasörü ekleme' tıklayın.

...

import sys 
print('\n'.join(sorted(sys.path))) 

programın girişinde PYTHONPATH düzgün beklediğiniz gibi ayarlanmış olup olmadığını görmek için bakınız:

3

sorun burada yatıyor kontrol etmenin en iyi yolu koyarak geçerli: Yapının nasıl görüneceği ile ilgili ayrıntılar için Importing from another project in pydev (en kötü durumda, önceden yapılandırılmışsa, bir PyDev önbellek hatası olabilir) - Eclipse'in yeniden başlatılması bu durumda düzeltilebilir - aksi halde muhtemelen yanlış yapılandırılır).

+0

Yeniden Başlatma Eclipse bu sorunu benim için çözdü, teşekkürler! – dimo414

2

Sanırım pydev, "fhb" paket adının köküne yakın benzer paket adlarında sorun yaşıyor. Bendede aynı sorun var. Projelerden birinde paketlerin kaldırılması, diğerini problemsiz görmeme izin veriyor.

Sorunu çözemedim, ancak paketin kök klasörünün aynı olması gerektiğini düşünüyorum.

+0

Bu benim için de sorun oldu, ama benim için hiçbir anlam ifade etmiyor ... Baz paketlerinin her yerde aynı olmasını istediğim birden fazla proje ile çalışıyorum ve bu şekilde yapamam. . O zamandan beri bunu düzeltmek için şansın var mıydı? –

0

Sorununuz, bazı modül klasörlerinizde eksik olan __init__.py dosyasından gelebilir.

Örneğiniz için, order_status.py dosyasından fhb.pycommon.types.order_status adresinden OrderStatus'u kullanmak için, fhb, fhb/pycommon ve fhb ​​/ pycommon/types türünde bir (muhtemelen boş) __init__.py dosyasına sahip olmanız gerekir. .

Ayrıca PyLint FHB/analiz/log_parsers.py için doğru şekilde çalışması için, siz de FHB/analizde bir __init__.py olması gerektiğini unutmayın.