2017-07-21 21 views
0

を動作しません、私はプロキシの背後午前は、私はhttps://pypi.python.org/pypi/ruamel.yamlから RuamelのYAMLのインポートは、私は私のプロジェクトでRuamel YAMLを使用したい

のgzipパッケージをダウンロードして
pip install ruamel.yaml-0.15.19.tar.gzでそれをインストールしました。

私はWindows 10でLiClipseを使用していますが、プロジェクトエクスプローラ内のlib/site-packages/ruamelにruamelパッケージがありますが、インポートして使用することはできません。

インポートを解決できません。

paho MQTTやpySerialのような他のフレームワークは問題なく動作しました。私はPyDevは5.8.0のソースに目を通してきた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 

enter image description here

+0

質問をエラーメッセージで更新できますか? – Anthon

+0

迅速な対応をありがとう!写真を編集して「未解決のインポート」メッセージを追加しました。 – Splitframe

+0

Windows 7でPython3.6.2をクリーンインストールした場合、これを再現することはできません。1.奇妙な点は、サイトパッケージにeasy_installがあることです。どのバージョンのsetuptoolsが実行されていますか? ( 'pip list --format columns'の出力、**スクリーンショットなし**、テキストを切り取って貼り付けることをお勧めします) – Anthon

答えて

1

(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は名前空間ベースのパッケージです(つまり、ruamel.で始まる200以上のパッケージがあり、そのうちのいくつかはPyPIでもあります)。これは問題を引き起こす可能性があります。これは、インストールにpipを使用する必要がある理由もあります。

私はFabio Zadrozny(著者)に電子メールで問題報告を送ってきましたが、これを調べるのに手伝ってくれました。

+0

あなたは本当のMVPです – Splitframe

関連する問題