激活虚拟环境和 运行 来自 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
在虚拟环境中直接 运行 一个 python
或 bash
脚本。只需在您的环境 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
我正在使用 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
在虚拟环境中直接 运行 一个 python
或 bash
脚本。只需在您的环境 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