2017-12-31 98 views
0

. bin/activateと入力して、自分のpython仮想環境をそのフォルダから有効にできます。代わりに、shazamなどの1つの単語エイリアスをホームフォルダ(または他の場所)から入力して、環境をアクティブにし、マスタープロジェクトフォルダを変更し、プロジェクトを一覧表示したいと思います。エイリアスを使用してvirtualenvを有効にする

私は含んで.SHファイルを指摘.bashrcのエイリアス作成しようとした:

cd ~/path-to-virtual-environment 
. bin/activate 
cd ~/path-to-master-project-folder 
ls -a 

を私が許可拒否エラーを得ていたので、私はchmod u+x <script file>を走りました。スクリプトが実行されますが、VEはアクティブ化されず、プロジェクトフォルダがリストされている間は、シェルはマスタープロジェクトフォルダにありません。私はいくつかの指導に感謝します。ありがとう。

+1

さらに詳しくは、virtualenvwrapperをチェックしてください。これにより、virtualenvを簡単に管理できます。 https://virtualenvwrapper.readthedocs.io/en/latest/ – jdigital

+0

Stack Overflowは、プログラミングおよび開発に関する質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

+0

提案していただきありがとうございます。スタックオーバーフローは私の開発環境にアクセスすることに関する問題で、エイリアス、bashスクリプト、および仮想環境へのアクセスに関する他の質問があるので(私がやろうとしているものと全く同じではない)、適切な会場のようです。 – landrykid

答えて

0

~/.virtualenvsにすべてのあなたの環境を再作成し、virtualenvwrapperをインストールします。 envを有効にするコマンドはworkon shazamです。コマンドライン補完がサポートされています。

問題について:シェルスクリプトで環境をアクティブにしようとしました。シェルスクリプトは別のシェルで実行され、envの起動は現在の環境ではなく環境を変更するため、これは機能しません。つまり、環境が一時的にアクティブになりましたが、スクリプトの最後に新しいシェルが終了し、環境が非アクティブになりました。

これを解決するには2通りの方法があります。

  1. スクリプトの代わりにエイリアスまたはシェル関数を使用します。現在のシェルの環境を変更する唯一の方法です。スクリプト(exec $SHELL)の終わりに

  2. 実行対話型シェル。アクティブ化された環境を継承し、コマンドプロンプトを表示します。無効にするには、単にシェルを終了する(exit又はは[Ctrl] +[D]。)。

+0

シェル関数を使用しました。ありがとうございました。 'exec $ SHELL'を追加しても、仮想環境がアクティブにならなかった可能性があります。おそらくユーザーエラーです。私はvirtualenvwrapperを読んで、私が利益を見ている間、私は複雑さを補うための十分な環境を想定していません。私の状況が変わったら、私は再訪します。 – landrykid

関連する問題