激活虚拟环境和 运行 来自 bash 脚本的命令

activate a virtual environment and run a command within from a bash script

我正在使用 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 中手动 运行 命令,脚本的其余部分等待我退出。我如何指定我想要命令 运行 within?

您可以使用 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
command to be run within venv
python3

然后简单地: pipenv run script.sh

Similar to this question