Python 2.7でゲームを作成していて、ゲームの開発環境の「ブートストラップ」をスクリプト化してから、シャベルを呼び出したいと考えています。virtualenvwrapperが検出されない場合は、virtualenvブートストラップソリューションを使用します。ただし、virtualenvwrapperが検出された場合は、代わりに使用したいと思います。
問題は、virtualenvwrapperインラインシェル関数がブートストラップスクリプトに継承されないことです。私の知る限り、これは「mkvirtualenvNotOrion」のようなものの実行を除外します。環境変数「VIRTUALENVWRAPPER_VIRTUALENV」が設定されているので(私の場合はmacportsから:) /opt/local/bin/virtualenv-2.7
、代わりに直接使用してみました。
#!/usr/bin/env bash
# Name your first "bootstrap" environment:
ENV_NAME=NotOrion
# Options for your first environment:
ENV_OPTS='--no-site-packages --distribute'
unset PYTHONDONTWRITEBYTECODE
function create_virtualenvwrapper_venv {
echo "installing into virtualenvwrapper directory"
cd $WORKON_HOME
$VIRTUALENVWRAPPER_VIRTUALENV $ENV_OPTS $ENV_NAME
cd -
#mkvirtualenv $ENV_NAME
#workon $ENV_NAME
}
function create_standalone_venv {
# not run/snipped
}
if [ -z "$VIRTUALENVWRAPPER_VIRTUALENV" ]; then
create_standalone_venv
else
create_virtualenvwrapper_venv
fi
pip install shovel
shovel help
ブートストラップスクリプトがシャベルのインストールを終了します。ただし、シャベル(最後の行など)を実行すると、警告が発生します。
/Users/me/.virtualenvs/NotOrion/bin/shovel:25: UserWarning: Module argparse was already imported from /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/argparse.pyc, but /Users/me/.virtualenvs/NotOrion/lib/python2.7/site-packages is being added to sys.path
import pkg_resources
# normal shovel output snipped
では、どういうわけかスクリプトから「mkvirtualenv」を呼び出すことは可能ですか?そうでない場合、同じ効果があるが警告を生成しないスクリプトから何か他のものを実行できますか?