我正在使用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中手动运行命令,脚本的其余部分等待我退出。如何指定要在其中运行的命令?
答案 0 :(得分:1)
您可以使用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
在venv中运行的命令
python3
然后简单地:
pipenv run script.sh