Python 2.7 名前空間パッケージのローカル テスト バージョンをインポートする方法を知りたいです。この例では、パッケージはルートSka.engarchive
の下の名前空間パッケージです。Ska
(この構造は、レガシーによって強制されています)。
この例はsys.path
、ローカル ディレクトリから開始するように設定した後でも、パッケージのローカル バージョンではなく、インストールされているバージョンがインポートされることを示しています。
Python 2.7.9 |Continuum Analytics, Inc.| (default, Apr 14 2015, 12:54:25)
...
In [1]: import sys
In [2]: sys.path.insert(0, '.')
In [3]: import Ska.engarchive.fetch_eng as fetch
In [4]: fetch.__file__
Out[4]: '/proj/sot/ska/arch/x86_64-linux_CentOS-5/lib/python2.7/site-packages/Ska.engarchive-0.36.2-py2.7.egg/Ska/engarchive/fetch_eng.pyc'
この問題は、Python 2 での名前空間パッケージの実装方法に関連していると思います。どういうわけか、名前空間パスは常にリストの先頭にあります。しかし、おそらくいくつかの回避策がありますか?パッケージのドキュメントを掘り下げるのに時間を費やしましたsite
が、適切なものが見つからなかっただけかもしれません。
上記の例では、Anaconda Python ディストリビューションを使用しています。興味深いことに、ActiveState の非常に古いビルドの Python を使用すると、この例ではローカル パッケージをインポートするという望ましい結果が得られます。
Python 2.7.1 (r271:86832, Feb 7 2011, 11:30:54)
In [1]: import sys
In [2]: sys.path.insert(0, '.')
In [3]: import Ska.engarchive.fetch_eng as fetch
In [4]: fetch.__file__
Out[4]: './Ska/engarchive/fetch_eng.pyc'
どんな助けでも大歓迎です!