web-dev-qa-db-ja.com

virtualenvを作成し、シェルスクリプトでアクティブ化します

Virtualenvを作成し、アクティブ化し、いくつかのライブラリをインストールして、pythonスクリプトを実行するシェルスクリプトを作成します。

しかし、「source script.sh」を実行しないとシェルスクリプトでvirtualenvをアクティブ化できないが、python3が機能しないという問題があります。どうすればこのようなことができますか?

#!/bin/bash
python3 -m pip install virtualenv
python3 -m virtualenv virtual
source virtual/bin/activate
pip install <some libraries>
python <filename.py>

Pythonへのグローバルパスなしでこれを実行したいと思います。ローカルで動作させたい。

3

Ubuntu(および他のほとんどのLinuxディストリビューション)では、絶対パスを使用しても安全です。PythonはOSの重要なコンポーネントです。

/usr/bin/python   # or respectively
/usr/bin/python3

システム全体にインストールされたPython=バージョンではなく、呼び出し元のユーザーのPATHの最初のバージョンを実行したくない場合は、代わりに次を使用します。

/usr/bin/env python   # or respectively
/usr/bin/env python3

この代替案についてさらに読む

1
dessert