我真的希望这是我错过了复杂的 Python2 导入机制的一个简单案例。我有以下设置:
$> ls -ltr pypackage1
total 3
-rw-r--r-- 1 pelson pelson 0 Aug 17 19:20 io.py
-rw-r--r-- 1 pelson pelson 0 Aug 17 19:20 __init__.py
-rw-r--r-- 1 pelson pelson 57 Aug 17 19:22 code.py
$> cat pypackage1/code.py
from __future__ import absolute_import
import zipfile
即我只有一个带有空__init__.py
andio.py
和 2 行code.py
文件的存根包。
我可以导入pypackage1
:
$> python -c "import pypackage1.code"
但我无法运行该code.py
文件:
$> python pypackage1/code.py
Traceback (most recent call last):
File "pypackage1/code.py", line 3, in <module>
import zipfile
File "python2.7/zipfile.py", line 462, in <module>
class ZipExtFile(io.BufferedIOBase):
AttributeError: 'module' object has no attribute 'BufferedIOBase'
显然,问题与zipfile
模块在内置模块上拾取我的相关 io 模块有关io
,但我认为我from __future__ import absolute_import
会解决这个问题。
提前感谢您的帮助,