Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将多个python脚本混合到一个shell脚本中?_Python_Bash_Shell_Docker_Virtualenv - Fatal编程技术网

如何将多个python脚本混合到一个shell脚本中?

如何将多个python脚本混合到一个shell脚本中?,python,bash,shell,docker,virtualenv,Python,Bash,Shell,Docker,Virtualenv,我有一个本地存储库,现在我想将其部署到docker容器中。我想写一个shell脚本来处理环境的设置 shell脚本可以按顺序执行以下操作: 1.安装virtualenv pip install virtualenv 2.设置一个名为newenv virtualenv new-env 3.进入环境 cd new-env 4.激活 source ./bin/activate 5.然后我们需要用我用pip freeze>requirements.txt导出的requirements.txt安装

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

shell脚本可以按顺序执行以下操作:

1.安装virtualenv

pip install virtualenv
2.设置一个名为
newenv

virtualenv new-env
3.进入环境

cd new-env
4.激活

source ./bin/activate
5.然后我们需要用我用
pip freeze>requirements.txt
导出的
requirements.txt
安装依赖项。注意,我把这个文件放在根目录中

因此:

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

是个不错的选择。它易于启动,并且可以随着系统复杂性的增加而扩展。请参考这个。使用ansible安装pip、virtualenv等的简单
yml
文件可能类似于:

- 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\u path
&您的主机等。只需从github克隆一个简单的repo即可开始


对于ansible来说,文档非常好。继续在谷歌上搜索下一步,你会在这里找到合适的答案。

这可能有点过分,不符合你的需要,但你有没有想过使用
ansible
?它是为服务器部署而设计的,可以做任何你想做的事情。Ansible、Fabric等是比shell脚本更好的选择,谢谢!现在迫不及待地想看看!
- 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