在my current bash中激活virtualenv(无子进程)
我想有一个通用的BASH脚本来激活我的虚拟脚本 给定文件夹中的环境在my current bash中激活virtualenv(无子进程),bash,virtualenv,Bash,Virtualenv,我想有一个通用的BASH脚本来激活我的虚拟脚本 给定文件夹中的环境 脚本应该能够从我拥有虚拟环境的任何文件夹中调用 如果没有虚拟环境,则应创建一个虚拟环境并安装pip要求 我无法在原始BASH中仅作为子进程运行激活(请参见--rcfile)。只是源代码-ing它不工作 这就是我目前的剧本: #!/bin/bash -e # BASH script to run virtual environment # Show errors set -x DIR_CURRENT="$PWD" DIR
- 脚本应该能够从我拥有虚拟环境的任何文件夹中调用
- 如果没有虚拟环境,则应创建一个虚拟环境并安装pip要求
--rcfile
)。只是源代码
-ing它不工作
这就是我目前的剧本:
#!/bin/bash -e
# BASH script to run virtual environment
# Show errors
set -x
DIR_CURRENT="$PWD"
DIR_VIRTUAL_ENV="$PWD/venv"
FILE_PYTHON="/usr/bin/python2.7"
FILE_REQUIREMENTS="requirements.txt"
FILE_VIRTUAL_ACTIVATE_BASH="$DIR_VIRTUAL_ENV/bin/activate"
# CD to current folder
cd ${DIR_CURRENT}
echo DIR: $(pwd)
# Create the virtual environment if not existing
if [ ! -d ${DIR_VIRTUAL_ENV} ]; then
virtualenv -p ${FILE_PYTHON} ${DIR_VIRTUAL_ENV}
chmod a+x ${FILE_VIRTUAL_ACTIVATE_BASH}
source ${FILE_VIRTUAL_ACTIVATE_BASH}
pip install -r ${FILE_REQUIREMENTS}
fi
/bin/bash --rcfile "$FILE_VIRTUAL_ACTIVATE_BASH"
# Disable errors
set +x
我使用MacOSX10.10.5和Python2.7
可悲的是,这些问题无法回答我的问题。首先,一个名为的项目已经很好地解决了您要做的事情
关于您的问题:使用函数而不是脚本。将其放入bashrc中,例如:
function enter_venv(){
# BASH script to run virtual environment
# Show errors
set -x
DIR_CURRENT="$PWD"
DIR_VIRTUAL_ENV="$PWD/venv"
FILE_PYTHON="/usr/bin/python2.7"
FILE_REQUIREMENTS="requirements.txt"
FILE_VIRTUAL_ACTIVATE_BASH="$DIR_VIRTUAL_ENV/bin/activate"
# CD to current folder
cd ${DIR_CURRENT}
echo DIR: $(pwd)
# Create the virtual environment if not existing
if [ ! -d ${DIR_VIRTUAL_ENV} ]; then
virtualenv -p ${FILE_PYTHON} ${DIR_VIRTUAL_ENV}
chmod a+x ${FILE_VIRTUAL_ACTIVATE_BASH}
source ${FILE_VIRTUAL_ACTIVATE_BASH}
pip install -r ${FILE_REQUIREMENTS}
fi
/bin/bash --rcfile "$FILE_VIRTUAL_ACTIVATE_BASH"
# Disable errors
set +x
}
您可以这样称呼它:
enter_venv
谢谢,据我所知,
virtualenvwrapper
只是在全球范围内创建环境?它是否也会自动构建和激活它们?很遗憾,你发布的函数没有在我的“根”shell中运行,仍然在创建一个新的。VirtualEnvrapper可以做你想做的事情。只需(完整地)阅读文档。要使我上面的示例起作用,您需要启动一个新的终端/外壳。否则,您的bashrc将无法再次获取源代码。(请不要告诉我您将函数放在脚本中并执行了!)您是否也可以发布一个VirtualRapper示例?使用VirtualRapper:mkvirtualenv-ppython2.7 NAME
。。从那时起,workon NAME
。。您需要手动执行pip安装-r requirements.txt
。确保按照手册中的说明正确安装了VirtualNVRapper谢谢。当我输入一个“现有”工作文件夹时,是否有自动运行的功能?