如何通过 shell 脚本激活 python virtualenv?

如何通过 shell 脚本激活 python virtualenv?

0

我必须激活虚拟环境(venv),因此我在终端中手动运行以下命令:

source .venv/bin/activate # To activate the virtual env.

deactivate # To deactivate the virtual env

手动运行时,此方法可正常工作。现在,我必须将这些命令插入 bash 脚本中,以使 AWS CodeDeploy 将其部署到 Ubuntu 18.04 服务器上。

我的 bash 脚本名为 after_install.sh 如下所示...

#!/usr/bin/env bash

set -e
source .venv/bin/activate
## DO SOME STUFF ##
deactivate

为了进行本地测试,我使脚本可执行,并使用 bash after_install.sh 运行该脚本。但什么也没发生。它没有激活虚拟环境。运行 bash 脚本时,上述命令似乎都不起作用。

我不明白为什么这些命令在手动运行的时候可以工作,而在使用 bash 脚本的时候却不行。这是怎么回事?我需要在 bash 脚本中编写这些命令,以便 AWS CodeDeploy 可以将其部署到服务器上。

答案1

source file_name.sh

对我也有用(根据 Dipanwita Mallick 的回答)。

提供了此方法有效原因的完整解释这里Lesmana 撰写。总结如下:

  • 获取脚本将在当前 shell 进程中运行命令。对环境的更改将在当前 shell 中生效。
  • 执行脚本将在新的 shell 进程中运行命令。

答案2

尝试使用 virtualenv 目录的完整路径。

#!/usr/bin/env bash

set -e
source /full-path/to/.venv/bin/activate
## DO SOME STUFF -> USE FULL PATH HERE TOO #
deactivate

此致。

答案3

使用来源运行 shell 脚本。

source file_name.sh

它对我有用。

相关内容