簡體   English   中英

Cygwin和Windows路徑沖突; 同時使用 Windows 和 cygwin Python

[英]Cygwin and Windows path conflict; using both Windows and cygwin Python

我已經在 Windows XP 上安裝了 cygwin。 我在 Windows 上安裝了一些軟件后,cygwin 上的 Mercurial 停止工作。 症狀可以簡化為 python 無法在其庫中找到模塊:

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

我在 Windows (subversion) 中安裝的軟件之一使用 python 所以現在 Windows 有自己的 ZA7F5F35426B9274117FC923 安裝。 別問我為什么要在cygwin下用mercurial,在Windows下用subversion; 我只想說我願意,但這無關緊要。 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

看起來路徑沖突實際上並沒有得到解決,因為當我再次發出上述“查找”命令時,我得到了相同的結果,首先出現的是 /cygdrive/c/csvn/Python25/Lib/os.py。 從理論上講,python 無法在 cygwin 上運行可能還有其他原因,但無法控制我的 PATH 仍然是個問題。 有任何想法嗎?

不幸的是,我同樣遇到問題的同事已經卸載了 csvn 的東西,所以我無法檢查。 但是閱讀文檔表明有罪的變量可能是$PYTHONHOME 檢查它是否已設置並嘗試取消設置!

您是否嘗試過在其他 SO 帖子中找到的解決方案? 似乎是一個類似的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM