Bir IPython kabuğundan bir modül (venues
) almaya çalışıyorum. venues
modülü doğru olarak alınır, ancak daha sonra makesoup
adlı bir modülü içe aktarmaya çalışır ve bunu yapamaz.Python 3: komut dosyasıyla aynı dizinde modül: "ImportError: Adsız modül yok"
~
dizininde bulunur ve processors
alt dizininde bulunan venues.py
dosyasını almaya çalışıyorum. makesoup.py
dosyası, processors
alt dizininde de bulunur; bu, yakınındaki herhangi bir Python komut dosyasının bulunması gerekir, değil mi?
In [1]: import processors.venues
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-765135ed9288> in <module>()
----> 1 import processors.venues
~/processors/venues.py in <module>()
7 """
8
----> 9 import makesoup
10 import re
11
ImportError: No module named 'makesoup'
Ben başarısız, hem~
ve processors
dizinleri boş __init__.py
ekledik.
Not: processors
adresinde bulunduğumda doğru olarak makesoup
modülü alınır, ancak bunun çalışması için tek yol olmadığını biliyorum.
Teşekkür ederim Kevin. Ancak, bu çözümlerin neden "venues.py" yönergesini çalıştırmayı imkansız kılacağını anlamıyorum. Nedenini söyler misin? –
Açık bir göreceli içe aktarma (listelediğim ilk seçenek) kullanırsanız, '__package__' sihirli değişkeni ayarlanmalıdır, ancak' python', '-m' olmadan doğrudan bir komut dosyası çalıştırırken bunu yapmaz. Mutlak bir içe aktarma kullanırsanız, Python, betikle aynı dizinde bulunmadığı için, 'processors' paketini bulamayabilir. Tekrar, -m, bunu düzeltir. – Kevin