Ruamel yaml 导入不起作用

Ruamel yaml import does not work

我想在我的项目中使用 Ruamel YAML,我在代理后面所以我下载了

来自 https://pypi.python.org/pypi/ruamel.yaml 的 gzip 包并使用
安装 pip install ruamel.yaml-0.15.19.tar.gz.

我在 Windows 10 上使用 LiClipse,我在 lib/site-packages/ruamel 下的项目资源管理器中看到了 ruamel 包,但我无法导入和使用它。

无法解析导入。

其他框架如 paho MQTT 或 pySerial 工作没有问题。

pip list --format-columns的输出

Package     Version
----------- -------
paho-mqtt   1.1
pip         9.0.1
pyserial    3.3
ruamel.yaml 0.15.19
setuptools  28.8.0

我查看了 PyDev 5.8.0 的源代码(LiClipse 似乎是闭源的,但我假设处理所有 Python 相关内容的 pydev 东西是开源的)。

在那里,pydevd.py 中有模块 get_fullname(),如果已安装,它会正确找到 ruamel.yaml

Python 3.6.2 (default, Jul 17 2017, 14:33:45) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkgutil
>>> loader = pkgutil.get_loader('ruamel.yaml')
>>> def get_fullname(self, mod_name):
...     if IS_PY3K:
...         import pkgutil
...     else:
...         from _pydev_imps import _pydev_pkgutil_old as pkgutil
...     try:
...         loader = pkgutil.get_loader(mod_name)
...     except:
...         return None
...     if loader is not None:
...         for attr in ("get_filename", "_get_filename"):
...             meth = getattr(loader, attr, None)
...             if meth is not None:
...                 return meth(mod_name)
...     return None
... 
>>> IS_PY3K=True
>>> get_fullname(None, 'ruamel.yaml')
'/home/venv/tmp-d2e4bd3600c863b7/lib/python3.6/site-packages/ruamel/yaml/__init__.py'

(由于未引用 self,因此可能应该删除并修饰 @staticmethod)。

我搜索了 Unresolved importUnused import 的来源,看看是否有其他类似的功能,但无法直接找到任何东西。由于 导入将起作用,即使此消息显示 ,但看起来 LiClipse 也使用其他一些(不兼容的)方式来查找导入。

ruamel.yaml 是一个基于命名空间的包(即有 200 多个以 ruamel. 开头的其他包,其中一些也在 PyPI 上),这可能会导致问题。这也是为什么你必须使用 pip 来安装的原因。

我已经通过电子邮件向 Fabio Zadrozny(作者)发送了关于此问题的问题报告,并提供我的帮助以帮助调查此问题。