Конфликт пути Cygwin и Windows;используя как Windows, так и Cygwin Python - PullRequest
2 голосов
/ 06 июля 2011

Я установил 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 все равно будет проблемой.Есть идеи?

Ответы [ 2 ]

5 голосов
/ 27 сентября 2011

К сожалению, мой коллега, у которого также была проблема, уже удалил csvn, так что я не могу проверить.Но чтение doc предполагает, что виновная переменная может быть $PYTHONHOME.Проверьте, установлен ли он, и попробуйте сбросить его!

0 голосов
/ 06 июля 2011

Вы пробовали решения, найденные в этом другом посте SO ? Похоже, похожая проблема.

...