从python导入模块会使子模块消失

从python导入模块会使子模块消失,python,ipython,Python,Ipython,我已经安装了ipython(0.12.dev),并且注意到由于名称冲突,我无法在具有path模块的项目中使用它。这是可以理解的,但问题是当我导入模块完整路径时,我关心的子模块不在那里 例如,如果我在普通(无路径)目录下运行此命令: 但是如果我在一个项目中运行它,该项目有一个模块path(或者只是mkdir path;touch path/\uuu init\uuuu.py): 缺少最后两个子模块(\u path和path) 有办法访问这些模块吗?是一个第三方库,如果有,IPython将尝试使用它

我已经安装了ipython(0.12.dev),并且注意到由于名称冲突,我无法在具有
path
模块的项目中使用它。这是可以理解的,但问题是当我导入模块完整路径时,我关心的子模块不在那里

例如,如果我在普通(无
路径
)目录下运行此命令:

但是如果我在一个项目中运行它,该项目有一个模块
path
(或者只是
mkdir path;touch path/\uuu init\uuuu.py
):

缺少最后两个子模块(
\u path
path

有办法访问这些模块吗?

是一个第三方库,如果有,IPython将尝试使用它。不幸的是,这意味着当路径模块或包位于工作目录中时,它会尝试使用它

一个简单的解决方法是在另一个目录中启动IPython,然后在IPython中启动
cd myproject
(但这样您就不能使用path模块)


要访问IPython附带的路径模块,请执行IPython.external.path import中的
\u path
。您可以修改
IPython/external/path/\uuuuu init\uuuuuu.py
,使其直接进入包含的副本。

谢谢,目录技巧非常有效。我真的不需要IPython的path模块,只要它对这个技巧感到满意。
>>> import IPython.external.path
>>> dir(IPython.external.path)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '_path', 'path']
>>> import IPython.external.path
>>> dir(IPython.external.path)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']