3

私は最近、職場の cron スクリプトでこれに出くわしました。

/bin/bash -c "[[ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc && pythonbrew use 2.6.7 && pythonbrew venv use someapp && python /opt/someapp/bin/someapp.py"

これは、Pythonbrew のシステム全体 (マルチユーザー) インストール用です。

できます。しかし、もっと良い方法があることを教えてください。

補遺

私が探しているものを明確にするために:pythonbrewに関連付けられたvirtualenvを介してスクリプトを実行する1行のコマンドが欲しいです。virtualenv だけで、次のようなことができます。

/opt/someapp/venv/bin/python /opt/someapp/bin/someapp.py

私が望んでいないのは、私のスクリプトを実行するための別のスクリプトです (上記の cron コマンドのように)。

4

3 に答える 3

1

トリックは、pythonbrew virtualenv の python バイナリを見つけることであることが判明しました。マークの答えは私を正しい方向に向けました。ただし、今後の参照用に完全な概要を次に示します。

pythonbrewがインストールされrootている状態で、(サーバー上と同様に)次のことを行いました:

pythonbrew install 2.6.6
pythonbrew switch 2.6.6
pythonbrew venv create --no-site-packages myapp

私はピップフリーズファイルを持っていたので、それを使ってvirtualenvをセットアップしました:

/usr/local/pythonbrew/venvs/Python-2.6.6/myapp/bin/pip install -r /tmp/requirements.pip

これで、私の python バイナリが にあります/usr/local/pythonbrew/venvs/Python-2.6.6/myapp/bin/python。だから私のスクリプトを実行するには:

/usr/local/pythonbrew/venvs/Python-2.6.6/myapp/bin/python /opt/myapp/bin/myapp.py
于 2013-05-22T18:46:27.813 に答える
1

pythonbrew仮想環境から直接pythonバイナリを使用することで実行できると思います。デフォルト~/.pythonbrew/venvs/Python-<version>/<name of venv>/bin/python では、環境変数でパスを変更できると思います。

したがって、追加した行の前半をpythonbrew仮想環境の python バイナリを参照するように変更するだけで機能するはずです。

于 2013-05-16T18:02:07.183 に答える