如何将几个Python脚本混合到一个shell脚本中?

我有一个本地存储库,现在我想将其部署到docker集装箱。 我想编写一个shell脚本来处理环境的设置。

shell脚本可能会按如下顺序做这样的事情:

1.安装virtualenv

pip install virtualenv 

2.build立一个名为new-env的新虚拟环境

 virtualenv new-env 

3.进入环境

 cd new-env 

4.activate

 source ./bin/activate 

5.然后,我们需要安装依赖关系,使用pip freeze > requirements.txt输出的pip freeze > requirements.txt 。 注意我把这个文件放在根目录下。

所以:

 pip install -r ../requirements.txt 

是否有可能将这些python脚本混合成一个shell脚本,以便我可以使用sh脚本进行设置? 谢谢。

Ansible是一个很好的select。 它容易上手,随着系统复杂性的增加可以扩展。 请参阅本教程 。 一个简单的yml文件安装pip,virtualenv等ansible可能看起来像这样:

 - name: download pip get_url: url=https://bootstrap.pypa.io/get-pip.py dest=/tmp - name: install pip command: "python /tmp/get-pip.py" - name: Install virtualenv pip: name=virtualenv - name: Create virtualenv path file: path={{ virtualenv_path }} state=directory - name: Install pip packages under virtualenv pip: requirements=/home/user/pip_list.txt virtualenv={{ virtualenv_path }} tags: packages 

还有一些样板设置来定义像virtualenv_path和您的主机等variables。只需从github克隆一个简单的回购来开始。

文件是相当不错的。 只要继续search下一步,你会发现在这里体面的答案。