python3中导入的变化

阿努帕姆

我正在使用python 3.4.4,并通过创建示例包来测试“ init.py”功能,但无法实现。提到的情况在python 2.7.13版本的情况下可以正常工作。谁能告诉我我正在做的错误,还是python 3.x版本的语法有任何变化。请帮我学习Python 3吗?

目录结构:

TestPackage/
    __init__.py
    TestModule.py
run.py

TestModule.py的内容:

def TestFun():
    print("Welcome")

__init__.py的内容:

from TestModule import TestFun

run.py的内容:

from TestPackage import TestFun
TestFun()

当我执行run.py文件时,出现以下错误:

Traceback (most recent call last):
  File "D:\CASE03\run01.py", line 1, in <module>
    from TestPackage import TestFun
  File "D:\CASE03\TestPackage\__init__.py", line 1, in <module>
    from TestModule import TestFun
ImportError: No module named 'TestModule'

但是,当我使用python 2.7.13时,它工作得很好。请指导我。

杰德沃兹

在内__init__.py,如果您更改

from TestModule import TestFun

from .TestModule import TestFun

您将获得预期的行为。

请参阅:PEP 328(有关使用前导点的相对导入的部分)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章