我最近决定升级到python3,并开始转换我的一些脚本。我在使用名为io
的模块的脚本中遇到了一个问题-在python2中,这是非常好的,但是在python3中,io
是文件的标准模块。我发现this old question是关于同一类问题的,但是这似乎是在引用python2。我有一个相反的问题-给定两个文件,main.py
和{main.py
中的import io
将导入标准的io
模块,而不是本地模块。from __future__ import absolute_imports
没有帮助,from . import io
和相关的尝试如预期失败(我从未理解过,python真的不知道顶级包在哪里?)。重命名显然是一个解决办法,但如果可能的话,我想避免它。有没有一些python3标准的方法来解决模块名冲突?在
这是我的回答:-在
我的目录结构:-在
__init__.py
是一个空文件。在io.py
是与python3的io模块冲突的自定义模块。在
^{pr2}$main.py
包含这一组示例代码:-在导入的
io
模块将是io.py
中的模块,而不是python3的模块。在另外,使用这种方法可以让我们拥有您的定制
io.py
以及python3的io
模块(如果您希望得到您的蛋糕并吃掉它;-)。您可以消除名称空间io
的使用冲突这:在运行
main.py
将得到你:-在请注意我在上面就
相关问题 更多 >
编程相关推荐