2009-07-14 120 views
5

我想使用安裝在cygwin下的Python,而不是直接安裝在WinXP下的Python,所以我編輯了〜/ .bashrc並找到它。沒有改變。我試過其他的東西,但沒有任何改變$ PATH的方式。所以我重新啓動。啊哈;現在$ PATH已經改變爲我想要的。

但是,誰能解釋爲什麼會發生這種情況?什麼時候通過cygwin(和bash)改變環境(及其變量)纔會在重新啓動後生效? (這是否有辦法運行鐵路?)(這個問題不可能贏得任何分數,但我很好奇,而且我也厭倦了通過文檔進行交流,這在這一點上沒有幫助。 )

+0

你用什麼確切的命令來改變$ PATH? – 2009-07-14 00:52:08

+0

我嘗試了幾種方法。編輯的〜/ .bashrc: PYTHON =的/ usr /斌/ python.exe代替/ cygdrive/C/Python中的/ etc /等 PATH = $ {PYTHON}:$ {PATH} 然後%源./ bashrc 當這種情況不起作用時,我嘗試從cmdline修改$ {PAth},甚至將其清除並重建它:沒有效果。 – behindthefall 2009-07-14 01:08:36

回答

0

您可能需要修改路徑變量後重新初始化bash的哈希值:

hash -r 
+0

bash的哈希?嗯。在Sun 3. IIRC上的'rehash'回憶。但是我認爲'source .bashrc'照顧到了,不是嗎? – behindthefall 2009-07-14 01:00:06

+1

rehash是tcsh。哈希-r是爲bash – 2009-07-14 19:24:17

3

嘗試:

PATH="${PATH}:${PYTHON}"; export PATH 

或者:

export PATH="${PATH}:${PYTHON}" 

引號保留空間和換行,你在你的目錄名。我重複「不要」

如果要更改當前環境和後續進程的路徑,請使用類似於上述任一命令的路徑;它們是等價的。

如果您想在下次啓動Bash時更改路徑,請編輯~/.bashrc並添加上述內容之一(例如)或編輯您在其中找到的現有PATH設置命令。

如果你想同時影響當前的環境和任何後續的人(即具有立即和「永久性」的影響),編輯~/.bashrc並執行下列操作之一:類以上所示的第一兩種形式之一或來源~/.bashrc文件。有時候,你可能不想採購,例如,如果它會撤銷你目前正在使用的一些臨時性的事情,就像其他變量的設置不同於~/.bashrc將設置(重置)它們。

我不認爲你需要擔心散列,除非你要麼做一些嚴重的重新安排或添加一些本地替代系統實用程序。

+0

好吧,如果我需要更多的證據,這表明我是如何生病放鬆bash。我需要做什麼?源,哈希和導出所有的時間? – behindthefall 2009-07-14 01:20:11

2

如果你希望你的變化是永久性的,你應該修改適當的文件(的.bashrc在這種情況下),並執行下列操作之一:

  • 重啓cygwin的窗口
  • 源的.bashrc (這應該工作,即使不適合你)
  • 。 .bashrc中(即點<空間> <文件名>)

然而,。在使用BASH shell時默認使用bashrc,所以如果你使用的是另一個shell(csh,ksh,zsh等),那麼你的修改不會被修改.bashrc所反映。

1

一對夫婦的事情,試圖至少排除:

  1. 你得到相同的行爲從外殼下面? (從我的cygwin,預期該工作粘貼。)

     
    $ echo $PATH 
    /usr/local/bin:/usr/bin:/bin 
    
    $ export PATH=$PATH:/cygdrive/c/python/bin 
    
    $ echo $PATH 
    /usr/local/bin:/usr/bin:/bin:/cygdrive/c/python/bin 
    
  2. 是您的.bashrc設置PATH以類似的方式上面? (即第二個命令)。

  3. 您的bashrc是否包含「源」或「。」命令在哪裏? (也許它是另外一個文件覆蓋你的PATH變量。)

相關問題