激活虚拟环境并从bash脚本中运行命令

时间:2020-03-31 18:23:15

标签: bash docker pipenv

我正在使用bash脚本作为docker容器的入口点。我的目标是能够激活docker容器中的虚拟环境,然后在相同的bash脚本中运行命令,而无需人工输入。 脚本的相关内容如下

#!/bin/bash
pipenv shell
ln -s /usr/local/lib/python3.7/dist-packages /usr/local/lib/python3.7/site-packages
command to be run within venv
python3

问题在于,当运行pipenv shell时,venv被激活并输入,但是其余命令未在其中运行。我可以在venv中手动运行命令,脚本的其余部分等待我退出。如何指定要在其中运行的命令?

1 个答案:

答案 0 :(得分:1)

您可以使用pipenv run在虚拟环境中直接运行pythonbash脚本。只需编写一个脚本,其中包含要在环境script.sh中运行的命令,然后执行pipenv run script.sh

Script.sh:

ln -s /usr/local/lib/python3.7/dist-packages /usr/local/lib/python3.7/site-packages
在venv中运行的命令
python3

然后简单地: pipenv run script.sh

Similar to this question