我正在尝试编写一个简单的脚本来帮助我激活(源)virtualenv并同时设置一些环境变量。下面是当前没有任何环境变量的版本。在Bash脚本中采购/激活Python VirtualEnv
#!/bin/bash
if [ -z "$BASH_VERSION" ]
then
exec bash "$0" "[email protected]"
fi
# Your script here
script_dir=`dirname $0`
cd $script_dir
/bin/bash -c ". ./django-env/bin/activate; exec /bin/bash -i"
该脚本的麻烦是双重的。
当我运行它 - 看似成功,因为它改变了命令行前缀
(django-env)
- 它缺少在它前面的My-Computer-Name:
。很明显,这是一个指示,因为我通常有(django-env) My-Computer-Name:
作为前缀。它没有正确激活virtualenv。也就是说,当我检查
which python
时,我收到了使用virtualenv Python的通知。另一方面,当我检查which pip
或which python3
时,使用全局系统的Python。
我能做些什么来解决这些问题,并激活环境?
不要在子shell中运行 - 直接删除'/ bin/bash -c'。 ./django-env/...'或'source ./django-env/..'。你如何运行脚本? – AChampion
我正在运行'source script.sh'。 – MadPhysicist
它看起来像你试图重新发明轮子 - 尝试[virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/)。 – rafalmp