我知道不建议使用相对进口,例如引自PEP8:
Relative imports for intra-package imports are highly discouraged. Always use the absolute package path for all imports. Even now that PEP 328 is fully implemented in Python 2.5, its style of explicit relative imports is actively discouraged; absolute imports are more portable and usually more readable.
如果我正在开发一个包(有几个模块)呢?在开发过程中,如果不安装/部署包,绝对导入将无法工作。这是否意味着我必须定期安装/部署当前的WIP模块来进行测试?在
下面是Cld提供的一个示例。给定一个Python项目/包:
myproject/
package1/
__init__.py
somemodule.py
package2/
__init__.py
somemodule.py
somescript.py
main.py
在main.py
中,绝对导入非常有效:
但是,对于像package2中的somescript.py
这样的模块,以下绝对导入:
import package2.somemodule
import package1
这会引起强烈的恐慌:
Traceback (most recent call last):
File "package2/somescript.py", line 1, in <module>
import package2.somemodule
ImportError: No module named package2.somemodule
你的“主”文件在哪里。在
如果您有:
在somescript.py公司名称:
^{pr2}$在主.py在
如果执行:python package2/somescript.py你得到了一个错误
但是如果执行python主.py你没问题。在
相关问题 更多 >
编程相关推荐