python - 如何将多个python脚本混合成一个shell脚本?

标签 python bash shell docker virtualenv

我有一个本地存储库,现在我想将它部署到一个 docker 容器中。我想写一个 shell 脚本来处理环境的设置。

shell 脚本可能会按顺序执行如下操作:

1.安装虚拟环境

pip install virtualenv

2.设置一个名为new-env的新虚拟环境

virtualenv new-env

3.进入环境

cd new-env

4.激活

source ./bin/activate

5. 然后我们需要使用我用 pip freeze > requirements.txt 导出的 requirements.txt 安装依赖项。请注意,我将此文件放在根目录中。

所以:

pip install -r ../requirements.txt

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

最佳答案

Ansible是一个不错的选择。它易于上手,并且可以随着系统复杂性的增加而扩展。请引用这个tutorial .一个简单的 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 和您的主机等。只需从 github 克隆一个简单的 repo 即可开始。

ansible 的文档非常好。继续在谷歌上搜索您的下一步,您会在这里找到不错的答案。

关于python - 如何将多个python脚本混合成一个shell脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37884201/

相关文章:

php - 如何在我的网站上显示来自 Facebook 的个人资料?

python - 如何使用 django-allauth 获取用户的 facebook id?

bash - 如何从 bash 脚本中引用重定向文件?

linux - shell 脚本 : parse blank spaces correctly

shell - 如何使用 shell 脚本等到 Kubernetes 的 pod 列表成功

python -/bin/sh - 来自 Python 的非交互式用法

python - 将 Flask env vars 添加到 virtualenv 的激活脚本可以吗?

python - 我应该使用什么模型字段类型来存储多个 long 类型?

bash - 如何理解 bash 中的条件?

bash - 如何在短路表达式中检索命令的返回码