Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从子目录导入模块在Python2中起作用,但在Python3中不起作用_Python_Python 3.x - Fatal编程技术网

从子目录导入模块在Python2中起作用,但在Python3中不起作用

从子目录导入模块在Python2中起作用,但在Python3中不起作用,python,python-3.x,Python,Python 3.x,所以我有一个目录,它的结构如下: > current_directory > submodule /__init__.py /some_module.py /main.py 在\uuuu init\uuuuu.py文件中,存在以下语句: from some_module import some_funciton 而在main.py中,整个子模块是通过:import子模块导入的 现在,Python2执行得非常好,但问题是在Python

所以我有一个目录,它的结构如下:

> current_directory
    > submodule
        /__init__.py
        /some_module.py
    /main.py
\uuuu init\uuuuu.py
文件中,存在以下语句:

from some_module import some_funciton
而在
main.py
中,整个
子模块
是通过:
import子模块
导入的

现在,Python2执行得非常好,但问题是在Python3中,
\uu init\uuuuuupy.py
中的
import
语句引发了一个
ImportError
异常:“没有名为'some\u module'的模块”


在指定导入文件的层次结构时,Python 2和Python 3之间有什么区别?我将如何调整代码以使用Python 3?

在Python 3中,仅以
的形式支持相对导入。导入子模块

您应该重写
import
语句,或者通过将项目目录添加到python路径使导入成为绝对的:

export PYTHONPATH=current_directory
python main.py

这应该行得通。唯一的问题是来自x import y的
语句。你确定你没有使用来自
吗?是的,我是。我把问题简化得太多了,无法提出问题。我会很快编辑它。谢谢,这会让它更清晰!有人链接了包含此链接的其他问题的答案:。这也很有帮助。