[英]Python unable to import custom module despite having __init__.py
我有一個帶有__init__.py
的文件夾
文件 __init__.py:
#!/usr/bin/python2
flags="test"
文件main.py:
#!/usr/bin/python2
import foldername
def main():
print foldername.flags
if __name__ == '__main__':
main()
現在,當我運行./main.py
(從文件夾內部)時,我收到錯誤
ImportError: No module named foldername
從文件夾foldername
的父文件夾運行:
$ python -m foldername.main
如果您將main.py
重命名為__main__.py
那么您可以將其運行為(自 Python 2.7 起):
$ python -m foldername
python -m
將當前目錄隱式添加到您的 python 路徑( sys.path
)。
Parent Folder/
└── foldername
├── __init__.py
│ # flags="test"
└── __main__.py
# import foldername
#
# def main():
# print foldername.flags
#
# if __name__=="__main__":
# main()
如果文件foldername
的父目錄在您的 python 路徑中,那么您可以從任何目錄運行上述命令。
PYTHONPATH問題。 確保“文件夾名”在您的路徑中可用。 如果您從“文件夾名”內部運行它,它可能不可用。 嘗試從“文件夾名”的父級運行。
確保您的布局是這樣的:
./folder/__init__.py
./main.py
並且沒有名為folder.py
文件!
更改到父文件夾,以便ls folder/__init__.py
工作。
接下來嘗試運行python -c "import folder"
。
如果要在 python3 中導入模塊,只需轉到根文件夾
python3 -mModuleName
確保您沒有刪除模塊名稱之前的-m
,然后您可以在項目目錄中的任何位置導入此模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.