Я установил Cygwin в Windows XP.Mercurial на cygwin перестал работать после того, как я установил некоторые программы на Windows.Симптом можно упростить до того, что python не сможет найти модули в своей библиотеке:
>>> import os
Traceback (most recent call last):
file "<stdin>", line 1, in <module>
ImportError: No module named os
Один из компонентов программного обеспечения, установленного мной в Windows (subversion), использует python, поэтому теперь в Windows есть собственная установка Python.Не спрашивайте, почему я хочу использовать Mercurial под Cygwin и Subversion под Windows;достаточно сказать, что я делаю, но это не относится к делу.Кажется, 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, но из того, что я могу сказать, / etc / profile добавляет путь к Windows к $ PATH в cygwin, и я не знаю, как этого избежать.В качестве обходного пути я изменил .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
Похоже, что конфликт путей на самом деле не был разрешен, потому что, когда я снова запускаю приведенную выше команду "найти", я получаю те же результаты, с / cygdrive / c /csvn / Python25 / Lib / os.py появляется первым.Теоретически может быть какая-то другая причина, по которой python не работает на cygwin, но неспособность контролировать мой PATH все равно будет проблемой.Есть идеи?