2016-09-14 11 views
0

私は何とか別々に再現することはできませんが、それは実動コードで表示され、もちろん実働コードは一般に共有できません。pkg_resourcesがインポートされるまで、同じ名前空間ツリーのパッケージからインポートできません

私はns.serverns.protobufの2つのパッケージを持っています。後者はプロジェクトのprotobuf固有の拡張を実装しています。どちらのパッケージには、適切setup.pyで名前空間のパッケージを宣言し、両方が定型が__init__.pyでものをpkg_resourcesあります

try: 
    __import__('pkg_resources').declare_namespace(__name__) 
except ImportError: 
    from pkgutil import extend_path 
    __path__ = extend_path(__path__, __name__) 

は現在、いくつかの奇妙な理由で、私はこの取得:

>>> import ns.protobuf 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named protobuf 
>>> import pkg_resources 
>>> import ns.protobuf 
>>> 

をだから、と思われますpkg_resourcesをインポートしてから修正するまで、私の名前空間はすべて狂っています。あまりにも悪いことではありません。回避策はpkg_resourcesを最初にインポートすることです。私はちょうど何が起こっているのか理解したいと思います。

答えて

0

うわー、2番目の質問私は何日もして自己回答です。私は間違って-e(開発モード)を渡すことを怠った以前のインストールから、lib/python2.7/site-packagesに古い卵情報ディレクトリがありました。すべてを完全にクリアし、再インストールしてください。

関連する問題