[英]python module importing error
我有以下結構:
AXBot:
__init__.py
bot.py
util.py
settings.py
creator
__init__.py
xbot.py
問題是我無法在“ xbot.py”中導入“ util”模塊,因為python結尾於“ ImportError:沒有名為util的模塊” ...我該如何解決?
PS:我正在使用以下代碼導入:
import util
import settings
謝謝。
使用相對導入
from . import util
from . import settings
我建議改變文件夾的層次結構,對我來說看起來更干凈。 還要檢查您的PYTHONPATH,它通常應該按照您的方式工作。
參考文獻:
嘗試遠離 sys.path hacks。
我認為命名空間不正確。 從xbot.py,嘗試使用此導入命令
from AXBot import util
from AXBot import settings
看來您正在嘗試從creator
文件夾中運行xbot.py
這是我通過xbot.py
獲得的包含import util
的輸出:
C:\Users\Luke\Python stuff\AXBot\creator>xbot.py
Traceback (most recent call last):
File "C:\Users\Luke\Python stuff\AXBot\creator\xbot.py", line 4, in <module>
import util
ImportError: No module named util
這是我從xbot.py
獲得的包含的輸出from . import util
from . import util
C:\Users\Luke\Python stuff\AXBot\creator>xbot.py
Traceback (most recent call last):
File "C:\Users\Luke\Python stuff\AXBot\creator\xbot.py", line 3, in <module>
from . import util
ValueError: Attempted relative import in non-package
我也from .. import util
而不是from . import util
收到后一個錯誤from . import util
from . import util
。
如果從包含xbot.py
的目錄中運行xbot.py
,則Python無法確定它是在程序包層次結構中運行的。 它認為xbot.py
不在軟件包中。
我將嘗試from AXBot import util
導入util
的行替換為上一行,並使用Python的-m
命令行開關運行了xbot.py
,該命令行告訴Python運行由模塊名而不是文件名指定的模塊。 請注意,當您使用-m
,您傳入模塊的全限定名稱,包括包層次結構,但不包括文件擴展名.py
,因為這不是模塊名稱的一部分:
C:\Users\Luke\Python stuff\AXBot\creator>cd ..\..
C:\Users\Luke\Python stuff>python -m AXBot.creator.xbot
1232
如果將import AXBot.util as util
而不是from AXBot import util
則得到相同的輸出。
(我沒有你的代碼運行,所以不是我把一個變量util.py
並試圖從內打印其價值xbot.py
。這個變量的值是1232
)。
您在哪里是最重要的問題! 據此,您可以使用import
。 請更新您的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.