我在Python 2.7中编写了game,并且想要编写我的游戏开发环境的“bootstrap”,然后调用shovel。如果未检测到virtualenvwrapper,我将使用virtualenv bootstrap solution。但是,如果virtualenvwrapper 是检测到,我想用它来代替。脚本virtualenvwrapper mkvirtualenv
问题是virtualenvwrapper内联shell函数没有被我的引导脚本继承。据我所知,这排除了运行诸如“mkvirtualenv NotOrion”之类的东西。由于环境变量“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”?如果没有,我可以从我的脚本运行其他效果相同但不会产生警告?
相同的确切问题,写一个引导脚本。谢谢! – cloudrave