如何进入Python虚拟环境并从shell脚本中运行shell命令?

时间:2016-11-30 05:58:22

标签: python shell virtualenv

我一直在编写一个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命令吗?

1 个答案:

答案 0 :(得分:4)

您可以在不激活虚拟环境的情况下安装您的需求,但可以提供virtualenv pip的完整路径。

<path_to_virtualenv>/bin/pip install -U spyder

因为activate正在做什么,所以将你的virtualenv bin/文件夹放在PATH之前,以便pippython命令在全球之前提及你的viartualenv。来自activate的来源:

VIRTUAL_ENV="<path_to_env>"
export VIRTUAL_ENV

_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH