我有一个__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
答案 0 :(得分:6)
从foldername
的父文件夹运行:
$ python -mfoldername.main
如果您将main.py
重命名为__main__.py
,则可以将其运行为(自Python 2.7起):
$ python -mfoldername
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路径中,那么您可以从任何目录运行上述命令。
答案 1 :(得分:3)
PYTHONPATH问题。确保您的路径中有“foldername”。如果您从“foldername”内部运行它,它可能无法使用。尝试从“foldername”的父级运行。
答案 2 :(得分:3)
确保您的布局如下:
./folder/__init__.py
./main.py
并且没有名为folder.py
的文件!
更改为父文件夹,以便ls folder/__init__.py
正常工作。
接下来尝试运行python -c "import folder"
。
答案 3 :(得分:0)
如果要在python3中导入模块,只需转到根文件夹
python3 -mModuleName
请确保不要删除模块名称前的-m
,然后可以将其导入项目目录中的任何位置。