簡體   English   中英

盡管有 __init__.py,Python 仍無法導入自定義模塊

[英]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問題。 確保“文件夾名”在您的路徑中可用。 如果您從“文件夾名”內部運行它,它可能不可用。 嘗試從“文件夾名”的父級運行。

這是一個關於找到你的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM