我安装了ipython(0.12.dev),我注意到由于名称冲突,我无法在具有path
模块的项目中使用它。这是可以理解的,但问题是当我导入模块完整路径时,我关心的子模块不在那里。
例如,如果我在正常(没有path
)目录中运行它:
>>> import IPython.external.path
>>> dir(IPython.external.path)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '_path', 'path']
但是如果我在一个有path
模块(或只是mkdir path; touch path/__init__.py
)的项目中运行它:
>>> import IPython.external.path
>>> dir(IPython.external.path)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
缺少最后两个子模块(_path
和path
)。
有没有办法访问这些模块?
答案 0 :(得分:1)
path是第三方库,如果IPython存在,它将尝试使用它。不幸的是,这意味着它会在工作目录中尝试使用您的路径模块或包。
一个简单的解决方法是在另一个目录中启动IPython,在IPython中启动cd myproject
(但后来你无法使用路径模块)。
要访问IPython附带的路径模块,请执行from IPython.external.path import _path
。您可以修改IPython/external/path/__init__.py
,直接转到附带的副本。