Python仮想環境を実行しているスクリプトに次の呼び出しをラップしようとしています。
[lucas@lucas-ThinkPad-W520]/home/lucas/bin$ source /home/lucas/Dropbox/projects/competitive-programming/kaggle/venv/ipython-notebook/bin/activate
(ipython-notebook) [lucas@lucas-ThinkPad-W520]/home/lucas/bin$ deactivate
[lucas@lucas-ThinkPad-W520]/home/lucas/bin$
だから私は次のbashスクリプトを作成して実行しました。
[lucas@lucas-ThinkPad-W520]/home/lucas/bin$ cat venv_python3.sh
#!/bin/bash
# /usr/bin/env bash
echo "starting python3 venv"
source /home/lucas/Dropbox/projects/competitiveprogramming/kaggle/venv/ipythonnotebook/bin/activate
[lucas@lucas-ThinkPad-W520]/home/lucas/bin$ venv_python3.sh
starting python3 venv
[lucas@lucas-ThinkPad-W520]/home/lucas/bin$
ご覧のとおり、呼び出しを実行しecho
ますが、仮想環境を起動しません。私は何を逃したことがありませんか?
いくつかのチュートリアルを見ましたが、欠落しているものが見つかりませんでした。また、/home/lucas/bin/
私のスクリプトの場所であるmyはmyにあります$PATH
。
ファイルの権限は次のとおりです。
[lucas@lucas-ThinkPad-W520]/home/lucas/bin$ ls -la
total 52
drwxr-xr-x 3 lucas lucas 4096 Jun 28 23:14 .
drwxr-xr-x 79 lucas lucas 4096 Jun 28 23:13 ..
-rwxrw-r-- 1 lucas lucas 164 Jun 28 23:13 venv_python3.sh
答え1
スクリプトの上部にはactivate
これをインポートする必要があり、直接実行することはできません。それがすることは、bash
ファイルソースセッションで何かを変更することです。
あなたの場合、これはスクリプトを実行して呼び出されbash
ます。bash
venv_python3.sh
いいえインタラクティブに入力しbash
ています。
あなたができることは、あなたのために購入を実行するbash機能(またはエイリアス)を作成することです。これにより、「購入」はあなたの側でインタラクティブに行われますbash
。
しかし、一度見てください。仮想環境ラッパー、複数のvirtualenvタスクをはるかに簡単に作成し、最初にこのスクリプトを作成したときに発生した「問題」を解決できます。