python ModuleNotFoundError:import从控制台工作,但不从嵌套模块工作

时间:2017-11-08 12:29:09

标签: python import

我的项目根目录中有一个名为_local的模块,另一个导入它的模块中有一个文件:

enter image description here

当我从根文件夹运行python _devtools/test_import.py时,出现错误:

python _devtools/test_import.py
Traceback (most recent call last):
  File "_devtools/test_import.py", line 1, in <module>
    import _local
ModuleNotFoundError: No module named '_local'

当我尝试从控制台导入此模块时,同时保留在同一根文件夹中,它可以工作:

python
Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import _local
>>>

我应该在环境变量中修改什么才能使导入工作?

1 个答案:

答案 0 :(得分:0)

从_devtools看不到_local模块,因为您正在运行temp_import.py作为主脚本,所以无法使用相对导入访问_local模块。

这是使用sys.path修改的简单hack,

import sys
sys.path.insert(0, "../_local")
import _local