【发布时间】:2015-09-12 17:41:59
【问题描述】:
我想知道如何导入 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'
任何帮助将不胜感激!
【问题讨论】:
标签: python python-2.7 python-import anaconda namespace-package