17

venv(virtualenv venv)というvirtualenvを作成したとしましょう

チュートリアルを読んで、仮想環境をアクティブにする2つの方法があることを読みました。

  1. . venv/bin/activate

  2. source venv/bin/activate

どちらも同じことを成し遂げていると思いますが、何が起こっているのかわかりません。

また、1番については、「。」はありません。現在のフォルダを意味しますか?しかし、「。」なしで「venv / bin/activate」と入力しただけでは機能しません。

どんな助けでも素晴らしいでしょう!

4

2 に答える 2

25

.sourceまったく同じことを行いますが、唯一の違いはsource、読みやすくなりますが、すべてのシェルで使用できるとは限らないことです。

コマンドは現在のシェル内でスクリプトの内容を実行します。これは、の場合に重要ですactivate。スクリプトが実行することの1つは、現在のシェル内の環境変数をエクスポートおよび変更することだからです。

を使用して実行する場合./path/to/activate、スクリプトはサブシェル内で実行され、スクリプトが完了してサブシェルが終了すると、設定されているすべての環境変数が失われます。

また、1番については、「。」ではありません。現在のフォルダを意味しますか?

.文脈によって意味が異なります。パス(またはパスの一部)として使用される場合にのみ、「現在のフォルダ」を意味します。

http://en.wikipedia.org/wiki/Dot_%28Unix%29から:

dotコマンドは、ドットプレフィックス付きの隠しファイルまたは隠しディレクトリであるドットファイルと混同しないでください。


余談ですが、これを見て、はるかに使いやすくvirtualenvwrapperする追加のラッパーコマンドを提供することをお勧めします。virtualenv

を使用virtualenvwrapperすると、環境への切り替えは次のように呼び出すだけで実行されます。

workon YOUR_ENV
于 2012-06-14T07:36:45.073 に答える