ImportError: No module named utils
我正试图导入一个实用程序文件,但只有当我通过脚本运行代码时才会遇到一个奇怪的错误。
当我运行test.py时
地点:home/amorav/python/proj/test.py
代码:
1 2 3 4 5 | import os os.chdir(r'/home/amourav/Python/') print os.listdir(os.getcwd()) print os.getcwd() from UTILS import * |
输出为:
['UTILS_local.py','UTILS.py', 'proj', 'UTILS.pyc']
/home/amourav/Python
Traceback (most recent call last):
File"UNET_2D_AUG17.py", line 11, in
from UTILS import *
ImportError: No module named UTILS
号
但是当我通过bash终端运行代码时,它似乎工作正常
1 2 3 4 | bash-4.1$ python >>> import os >>> os.chdir(r'/home/amourav/Python/') >>> print os.listdir(os.getcwd()) |
号
['UTILS_local.py','UTILS.py', 'proj', 'UTILS.pyc']
号
1 | >>> from UTILS import * |
blah blah -everything is fine- blah blah
号
我在Linux机器上运行python 2.7.10
您的项目如下所示:
1 2 3 4 | +- proj | +- test.py +- UTILS.py +- ... |
如果要导入utils.py,可以选择:
(1)将路径添加到test.py中的sys.path
1 2 3 4 | import os, sys sys.path.append(os.path.join(os.path.dirname(__file__),"..")) # now you may get a problem with what I wrote below. import UTILS |
号
(2)创建包(仅限导入)
1 2 3 4 5 6 7 | Python +- proj | +- test.py | +- __init__.py +- UTILS.py +- __init__.py +- ... |
现在,您可以在test.py中编写它,如果您是
1 | from .. import UTILS |
。
回答错误
我犯过几次这个错误。我想,我记得。
修正:不运行
如果您查看
test.py 把'' 加到sys.path 上。./test.py 把'.' 加到sys.path 上。
小精灵
我想只能从