我试图导入一个实用程序文件,但只有在通过脚本运行代码时才会遇到奇怪的错误。
当我运行test.py
位置:/home/amourav/Python/proj/test.py
码: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']
/家庭/ amourav / Python的
Traceback(最近调用的最后一个):来自UTILS导入的文件“UNET_2D_AUG17.py”,第11行import * ImportError:没有名为UTILS的模块
但是当我通过bash终端运行代码时,它似乎工作正常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']>>> from UTILS import *
等等 - 一切都很好,等等等等
我在linux机器上运行Python 2.7.10
你的项目如下所示:+- proj
| +- test.py
+- UTILS.py
+- ...
如果你想导入UTILS.py,你可以选择:
(1)在test.py中添加sys.path的路径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)创建一个包(仅限导入)Python
+- proj
| +- test.py
| +- __init__.py
+- UTILS.py
+- __init__.py
+- ...
现在,如果你import Python.proj.test ,你可以在test.py中写入:from .. import UTILS
错误的答案
我有几次这个错误。 我想,我记得。
修复:不要运行test.py ,运行./test.py 。
如果你看看sys.path ,你可以看到里面有一个空字符串,其中是执行文件的路径。
test.py向sys.path添加''
./test.py添加'.' 到sys.path
导入只能从"."进行"." , 我认为。
链接地址: http://www.djcxy.com/p/97089.html