2015-07-07 27 views
11

Bir projeİthalat hatası, hiçbir modül adlı xxxx

şimdi terminalde python açıp yazın

/example 
../prediction 
....__init__.py 
....a.py 

PYTHONPATH işaret edilmektedir yapıya/örnek olan var

import prediction 

Başarıldı, ancak

import prediction.a 

hata niçin

ImportError: No module named 'prediction.a'; 'prediction' is not a package 

neden döndürüyor? Bu paket zaten

+5

Çalışma dizinizde önceliğe sahip olabilecek bir 'prediction.py' dosyası var mı? Tahmini içe aktarırsanız, 'prediction .__ file__' nedir? – larsks

+0

@larsks haklısın, tahmini var.py –

+0

@larsks Yorum yapman için bir cevap vereyim? Sorunumu çözdü, ancak sadece Google arama sonuçlarında 4. sırada geldi;) – IanS

cevap

24

olarak içe aktarılmadı. Gördüğünüz davranış, geçerli dizininizde çakışan bir ada sahip bir modül (foo.py) veya paket (foo/__init__.py) neden olabilir.

Sizin durumunuzda, prediction.py adında bir dosya bulunduğundan şüpheleniyorum ve examples dizininizde prediction paketi yerine bunu alıyorsunuz.

+1

Başım ağrıyor ve benzer bir sorunla uğraşıyordum ... bu benim sorunumu çözdü. Teşekkür ederim. –

+1

Cevabınız yalnızca sebebini açıkladığından, bir paketi açık bir şekilde içe aktarmak için bir çözüm sunmuyor, bu Python'un bunu yapamadığı anlamına mı geliyor? – Robert

+0

Sanırım ne demek istediğine bağlı. Python * dosyaları mutlak bir yol adıyla içe aktarmaz *, ancak bir şeyleri aradığı düzeni (veya konumları) değiştirmek için modül arama yolunu kendiniz değiştirmek konusunda özgürsünüz. Bu soruyu daha ayrıntılı olarak takip etmek isterseniz, muhtemelen en iyisi de stackoverflow üzerinde yeni bir soru açıyor olabilirsiniz. – larsks

İlgili konular