2009-07-14 12 views
5

WinXPで直接インストールされたPythonではなく、CygwinでインストールされたPythonを使用したかったので、〜/ .bashrcを編集してソースとしました。何も変わっていません。私は他のものを試しましたが、何も$ PATHを変更したものは何もありません。だから私は再起動しました。ああ。今は$ PATHが私の望むものに変更されました。

しかし、誰もがこれがなぜ起こったのか説明できますか? cygwin(およびbash)経由で行われた環境(およびその変数)への変更は、再起動後に有効になるのはいつですか?

(これは鉄道を走らせる方法ですか?)(この質問は何も得られないでしょうが、私は不思議であり、この点で助けにならないドキュメントにはうんざりです。 )

+0

$ PATHを変更するためにどのような正確なコマンドを使用しましたか? –

+0

私はいくつかの方法を試しました。次に$ {PATH} %源./: PYTHON =は/ usr/binに/ python.exeの代わりに/ cygdriveの/ C/Pythonの/などの/ etc PATH = $ {PYTHONを}〜/ .bashrcの編集bashrc これがうまくいかなかったとき、私はcmdlineから$ {PAth}を修正してみました。それでも、ワイプアウトして再構築しました。効果はありません。 – behindthefall

答えて

0

あなたはパス変数を変更した後に再初期化はbashのハッシュを必要とする場合があります。

hash -r 
+0

bashのハッシュは?うーん。太陽の上の「再ハッシュ」の思い出3. IIRC。しかし、私は 'source .bashrc'がそれを世話したと思ったのですが、それはありませんでしたか? – behindthefall

+1

rehashはtcshです。 hash -rはbash用です –

3

試してみてください。

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

または:

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

引用符は、あなたスペースや改行を保存しないは、ディレクトリ名にしています。私は"do not"を繰り返します。

現在の環境および後続のプロセスのパスを変更する場合は、上記のいずれかのコマンドと同様のものを使用します。彼らは同等です。

次回Bashを起動するときにパスを変更する場合は、~/.bashrcを編集し、上記のいずれか(たとえば)を追加するか、そこにある既存のPATH設定コマンドを編集します。

あなたは、現在の環境とそれ以降のもの(すなわち、即時かつ影響を与える「永久」している)、~/.bashrcを編集し、次のいずれかを実行し、両方に影響を与えるようにしたい場合は、次の種類上に示した最初の2つの形式の一つまたはソースファイル~/.bashrc。場合によっては、たとえば、~/.bashrcとは異なる設定の変数を設定しているなど、現在使用している一時的なものを元に戻すなどして、ソースを設定したくない場合もあります。

私は、あなたが重大な並べ替えをしたり、おそらくシステムユーティリティのローカル置換を追加していない限り、ハッシュについて心配する必要はないと思います。

+0

これ以上の証拠が必要な場合、これはどのように病気がどれくらいうまくいくかを私がbashで示しています。私は何をしなければならないのですか?ソース、ハッシュ、そしてその順番で常にエクスポート? – behindthefall

+0

あなたは私を失ってしまった。私はそこにない空白を保存しますか? 「NIXの命名規則に固執する」と言っていますか? (私はいつもしています;ファイルシステム名に空白の恐怖があります---ハイフンは好きではありません) – behindthefall

+0

私のcygwinシステムでは、現在のシェルセッションで$ PATHを変更するために、コマンド。 'export PATH =" $ PATH}:{$ PYTHON} "を.bashrcに追加すると、ログインするたびに動作します。 –

2

、あなたの変更が永続的になりたい場合は、適切なファイル(この場合はbashrcに)を修正し、次のいずれかのアクションを実行する必要があります。

  • 再起動Cygwinウィンドウ
  • ソースの.bashrc (これはあなたのために働いていなくても動作します)
  • 。 bashrcには、しかし

(つまり、ドット<スペース> <ファイル名>です)。bashrcはBASHシェルを使用するときにデフォルトで使用されるため、別のシェル(csh、ksh、zshなど)を使用している場合は、.bashrcを変更することで変更内容が反映されません。

+1

上記の ".bashrc"は "source .bashrc"のbash簡略表記です –

1

しようとすると、少なくとも除外する物事のカップル:

  1. はあなたがシェルから次と同じ動作を得るのですか? (期待通りに動作します私のcygwinの、から貼り付け。)上記と同様にPATHを設定し、あなたのbashrcには

     
    $ 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. ですか? (すなわち、第2のコマンド)。

  3. bashrcには「ソース」または「。」が含まれていますか?コマンドどこに? (おそらく、あなたのPATH変数を上書きする別のファイルをソースしているかもしれません)。

+0

こんにちは、ars。私は夜中にやっているが、明日はもう一度やり直さなければならない。ありがとう。 – behindthefall

関連する問題