在Python 3中使用pyping时,没有名为“ core”的模块
问题内容:
我正在尝试pyping
为Python 3导入,但出现以下错误:
virt01@virt01:~/Python_Admin$ python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyping
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.4/dist-packages/pyping/__init__.py", line 3, in <module>
from core import *
ImportError: No module named 'core'
>>>
更新1
virt01@virt01:~/Python_Admin$ ls /usr/local/lib/python3.4/dist-packages/pyping/
core.py __init__.py __pycache__
问题答案:
这是因为对于Python 3而言,绝对导入有效(更确切地说,缺少隐式相对导入),并且该pyping
模块很可能仅是针对Python
2编写的。而在Python 2中,您可以执行以下操作:
from core import *
在Python 3中(或者如果from __future__ import absolute_import
在Python
2中具有),则必须执行以下操作:
from .core import *
要么
from pyping.core import *
您有两种选择:
- 要求模块作者使其与Python 3兼容
- 自己进行分叉,使其与Python 3兼容(您可以研究使用
2to3
它)