Phi*_*lon 6 python python-module python-2.7 python-3.5
在过去的几个小时中,我一直在使用Google搜索,在任何地方都找不到等效的问题。此外,2.7和3.5的文档似乎相同,因此我认为没有记录这种行为。
这是我的目录结构:
project
-- project.py
-- api
-- __init__.py
-- subapi
-- __init__.py
Run Code Online (Sandbox Code Playgroud)
的内容project/project.py:import api
的内容project/api/__init__.py:import subapi
如果我python project.py从projects文件夹中执行(使用python 2.7),它将返回而不会出现错误。如果我对python 3(python3 project.py)执行相同操作,则崩溃
Traceback (most recent call last):
File "project.py", line 1, in <module>
import api
File "/home/me/Documents/project/api/__init__.py", line 1, in <module>
import subapi
ImportError: No module named 'subapi'
Run Code Online (Sandbox Code Playgroud)
如果我重写import语句以使用相对于项目目录(import api.subapi)的路径,则它适用于python 2和3。虽然这不是令人满意的解决方案,因为这要求我从子模块中引用父模块,这会导致失败。模块化的思想
有谁知道我该怎么做才能恢复python2的行为?模块搜索算法应优先使用import语句在文件的本地目录中搜索。顺便说一句,它还应优先考虑上述内置模块中的这些文件。尝试导入模块“测试”。
-编辑-stackoverflow要求我将我的问题与另一个称为“如何进行相对进口”的问题区分开。我认为这个问题有所不同,因为我专门询问两个版本之间的差异。使用相对导入是解决方案,而不是问题。
| 归档时间: |
|
| 查看次数: |
2853 次 |
| 最近记录: |