Cygwin和Windows路径冲突; 同时使用Windows和cygwin Python

jas*_*r77 2 python svn mercurial cygwin

我在Windows XP上安装了cygwin.在Windows上安装了一些软件之后,Mercurial on cygwin停止了工作.症状可以简化为python无法在其库中找到模块:

>>> import os
Traceback (most recent call last):
  file "<stdin>", line 1, in <module>
ImportError: No module named os
Run Code Online (Sandbox Code Playgroud)

我在Windows(subversion)中安装的软件之一使用python,所以现在Windows有自己的Python安装.不要问为什么我希望在Windows下的cygwin和subversion下使用mercurial; 我已经足够说了,但那不是重点.似乎cygwin试图使用Windows python而不是它自己,或者至少我认为正在发生这种情况.如果那不是原因,请赐教.无论如何...

$ find/cygdrive/c -name os.py /cygdrive/c/csvn/Python25/Lib/os.py /cygdrive/c/cygwin/lib/python2.6/os.py

echo $ PATH确认/ cygdrive/c/csvn/Python25在/usr/lib/python2.6之前.我不是cygwin wiz,但是从我可以告诉/ etc/profile添加Windows路径到cygwin的$ PATH,我不知道如何阻止它这样做.作为一种解决方法,我修改了.profile以显式设置PATH,从Windows中排除这些路径.但是,问题仍然存在:

$ echo $PATH
/usr/local/bin:/usr/bin:/usr/lib/python2.6
$ hg
'import site' failed; use -v for traceback
Traceback (most recent call last):
  File "/usr/bin/hg", line 10, in <module>
    import os
ImportError: No module named os

$ ls /usr/lib/python2.6/os.py
/usr/lib/python2.6/os.py
Run Code Online (Sandbox Code Playgroud)

看起来路径冲突实际上并没有得到解决,因为当我再次发出上面的"find"命令时,我会得到相同的结果,首先显示/cygdrive/c/csvn/Python25/Lib/os.py.从理论上讲,python可能还有其他一些原因不能用于cygwin,但是无法控制我的PATH仍然是个问题.有任何想法吗?

Jan*_*dec 5

不幸的是我的同事也有问题已经卸载了csvn的东西,所以我无法检查.但阅读文档表明可能存在的罪魁祸首$PYTHONHOME.检查它是否已设置并尝试取消设置!