在Python 3中使用pyping时,没有名为“ core”的模块

rɑː*_*dʒɑ 7 python python-import python-3.x

我正在尝试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'
>>>
Run Code Online (Sandbox Code Playgroud)

更新1

virt01@virt01:~/Python_Admin$ ls /usr/local/lib/python3.4/dist-packages/pyping/
core.py  __init__.py  __pycache__
Run Code Online (Sandbox Code Playgroud)

uni*_*rio 8

这是因为对于Python 3而言,绝对导入有效(更确切地说,缺少隐式相对导入),并且该pyping模块很可能仅是针对Python 2编写的。而在Python 2中,您可以执行以下操作:

from core import *
Run Code Online (Sandbox Code Playgroud)

在Python 3中(或者如果from __future__ import absolute_import在Python 2中具有),则必须执行以下操作:

from .core import *
Run Code Online (Sandbox Code Playgroud)

要么

from pyping.core import *
Run Code Online (Sandbox Code Playgroud)

您有两种选择:

  1. 要求模块作者使其与Python 3兼容
  2. 自己进行分叉,使其与Python 3兼容(您可以研究使用2to3它)