私はvirtualenvとvirtualenvwrapperを使っています。 workon
コマンドを使ってvirtualenvの罰金を切り替えることができます。
me@mymachine:~$ workon env1
(env1)me@mymachine:~$ workon env2
(env2)me@mymachine:~$ workon env1
(env1)me@mymachine:~$
しかし、どのようにしてすべての仮想マシンを終了し、実際のマシンで作業するのでしょうか。今、私が戻る唯一の方法
me@mymachine:~$
シェルを終了して新しいシェルを起動することです。それは厄介です。 「何もしない」というコマンドがありますが、もしあれば、それは何ですか?そのようなコマンドが存在しない場合、どのように作成しますか?
通常、virtualenvを起動すると、以下の名前のシェル関数が得られます。
$ deactivate
これは物事を正常に戻します。
virtualenvwrapper,
のコードをもう一度見てみました。そうです、すべてのvirtualenvから逃れる方法としてdeactivate
もサポートしています。
Anaconda 環境を離れようとしているのであれば、手順は少し異なります。スタンドアローンスクリプトを使用して非アクティブ化を実装するため、2ワードコマンドのsource deactivate
を実行します。
bash-4.3$ deactivate
pyenv-virtualenv: deactivate must be sourced. Run 'source deactivate' instead of 'deactivate'
bash-4.3$ source deactivate
pyenv-virtualenv: no virtualenv has been activated.
alias workoff をworkonの逆として定義しました。
alias workoff='deactivate'
覚えやすいです:
[bobstein@Host ~]$ workon Django_project
(Django_project)[bobstein@Host ~]$ workoff
[bobstein@Host ~]$
$ deactivate
これでうまくいかない場合は、試してみてください。
$ source deactivate
bash source
がどのように動作するかを知っている人なら誰でもそれは変だと思いますが、virtualenvを取り巻くラッパー/ワークフローはsource activate
の補完/対応物として実装されています。 YMMV
python仮想環境を有効にするには:
$cd ~/python-venv/
$./bin/activate
無効にする
$deactivate
deactivate
を使用してください。
(my_env) user@user:~/my_env$ deactivate
user@user-Lenovo-E40-80:~/my_env$
(my_env)
はなくなりました。
virtualenvwrapper
を扱う方法を簡単にするためにvirtualenv
を使うことができます。
virtualenvwrapper
のインストール
pip install virtualenvwrapper
標準のシェルを使用している場合は~/.bashrc
を、oh-my-zshを使用している場合は~/.zshrc
を開きます。この2行を追加してください。
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
既存のvirtualenvをアクティブにするには、workonコマンドを使用します。
$ workon myenv
(myenv)$
あなたのvirtualenvを無効にするには:
(myenv)$ deactivate
これが私の チュートリアル 、virtualenvとvirtualenvwrapperのインストール方法のステップバイステップです。
~/bin/activate
をソースとして作成されたdeactivate
関数は、~/bin
でこのようなコマンドを探す通常の方法では検出できないため、関数deactivate
。
問題は、単一のコマンドdeactivate
を含むdeactivate
という名前のスクリプトが、venv以外で誤って実行されると無限ループを引き起こすことです。よくある間違い。
これは、関数が存在する場合(つまり、deactivate
をソースとして作成された場合)にのみactivate
を実行することで回避できます。
#!/bin/bash
declare -Ff deactivate && deactivate
autoenv を基にした zsh-autoenv を使います。
zsh-autoenv 自動的に(既知の/ホワイトリストに載っている)
.autoenv.zsh
ファイルをソースします。通常はプロジェクトのルートディレクトリで使われます。 「入力」および「終了」イベント、ネスト、および変数の隠蔽(上書きおよび復元)を処理します。
これが一例です。
; cd dtree
Switching to virtual environment: Development tree utiles
;dtree(feature/task24|✓); cat .autoenv.zsh
# Autoenv.
echo -n "Switching to virtual environment: "
printf "\e[38;5;93m%s\e[0m\n" "Development tree utiles"
workon dtree
# eof
dtree(feature/task24|✓); cat .autoenv_leave.zsh
deactivate
dtree
ディレクトリを離れると、仮想環境は自動的に終了します。
私は、Miniconda 3環境内で実行しなければならなかったことを知りました:
conda deactivate
deactivate
もsource deactivate
も私のために働いていませんでした。