我一直在编写一个shell脚本,要在CentOS 7 Docker容器中运行,以便创建一个AppImage。在这个脚本中,我想从shell脚本启动的Python虚拟环境(通过运行pip install -U spyder
启动)中运行Shell命令source AppDir/usr/bin/activate
。问题是我不知道如何做到这一点,因为source AppDir/usr/bin/activate
行之后的脚本中的行被忽略(就像脚本中的这一点,shell已进入Python虚拟环境)。那么我需要传递source AppDir/usr/bin/activate
命令以便它在这个Python虚拟环境中运行pip install -U spyder
命令吗?
答案 0 :(得分:4)
您可以在不激活虚拟环境的情况下安装您的需求,但可以提供virtualenv pip
的完整路径。
<path_to_virtualenv>/bin/pip install -U spyder
因为activate
正在做什么,所以将你的virtualenv bin/
文件夹放在PATH
之前,以便pip
,python
命令在全球之前提及你的viartualenv。来自activate
的来源:
VIRTUAL_ENV="<path_to_env>"
export VIRTUAL_ENV
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH