Python 3.x 导入python模块时出错
当我按照如下方式编译时,我得到了以下错误。为什么会出现错误?提前谢谢Python 3.x 导入python模块时出错,python-3.x,python-import,Python 3.x,Python Import,当我按照如下方式编译时,我得到了以下错误。为什么会出现错误?提前谢谢 cd /root/rel_path/ctlib/src python3 main_prog.py 错误: 代码: 主程序代码: init.py代码: 您的导入实际上是在auto.py中查找树中不存在的CtAuto类: /root/rel_path/ |--- ctlib |--- src |--- m
cd /root/rel_path/ctlib/src
python3 main_prog.py
错误:
代码:
主程序代码:
init.py代码:
您的导入实际上是在auto.py中查找树中不存在的CtAuto类:
/root/rel_path/
|--- ctlib
|--- src
|--- main_prog.py
|--- auto
|--- __init__.py
|--- auto.py
改用ctlib.auto.auto import CtAuto中的,并将CtAuto类放入/root/rel_path/ctlib/auto/auto.py
[编辑]
由于\uuuu main\uuuu
位于子记录中,因此需要将项目的rootdir添加到Pythonpath
中。(导入CtAuto
之前)
或
您的导入实际上是在auto.py中查找树中不存在的CtAuto类:
/root/rel_path/
|--- ctlib
|--- src
|--- main_prog.py
|--- auto
|--- __init__.py
|--- auto.py
改用ctlib.auto.auto import CtAuto中的,并将CtAuto类放入/root/rel_path/ctlib/auto/auto.py
[编辑]
由于\uuuu main\uuuu
位于子记录中,因此需要将项目的rootdir添加到Pythonpath
中。(导入CtAuto
之前)
或
因为您在子级别(子级别)中运行程序,并且在同一级别上执行导入,而不创建任何包,这是同一级别上的相对导入
如下图所示更改主程序将使其正常工作
import sys
sys.path.append("..")
from auto import CtAuto
print("hello")
因为您在子级别(子级别)中运行程序,并且在同一级别上执行导入,而不创建任何包,这是同一级别上的相对导入
如下图所示更改主程序将使其正常工作
import sys
sys.path.append("..")
from auto import CtAuto
print("hello")
还是不行。错误:root@Linux:~/rel_path/ctlib/src#python3 main_prog.py回溯(最后一次调用):文件“main_prog.py”,第2行,在from ctlib.auto.auto import CtAuto ModuleNotFoundError:没有名为“ctlib”的模块root@Linux:~/rel_path/ctlib/src#对不起,我误解了你的问题。更新了我的帖子。现在它在本地为我工作。是的,它也为我工作。发现对PYTHONPATH环境变量的临时更改也正常:export PYTHONPATH=“${PYTHONPATH}:/root/rel_path/”仍然无法工作。错误:root@Linux:~/rel_path/ctlib/src#python3 main_prog.py回溯(最后一次调用):文件“main_prog.py”,第2行,在from ctlib.auto.auto import CtAuto ModuleNotFoundError:没有名为“ctlib”的模块root@Linux:~/rel_path/ctlib/src#对不起,我误解了你的问题。更新了我的帖子。现在它在本地为我工作。是的,它也为我工作。发现对PYTHONPATH环境变量的临时更改也正常:export PYTHONPATH=“${PYTHONPATH}:/root/rel_path/”
/root/rel_path/
|--- ctlib
|--- src
|--- main_prog.py
|--- auto
|--- __init__.py
|--- auto.py
import sys
sys.path.append('../../')
import sys
sys.path.append('/root/rel_path/')
import sys
sys.path.append("..")
from auto import CtAuto
print("hello")