以下
repo-install.sls
曾经在ubuntu 16,python 3.5上工作
repo-install-dependencies:
pkg.installed:
- names:
- python3-pip
- python3-venv
- mercurial
- git
- subversion
bin_env:
virtualenv.managed:
- name: {{ bin_env }}
- pip_pkgs:
- pip
- setuptools
- require:
- pkg: repo-install-dependencies
- venv_bin: "/usr/bin/pyvenv"
在新的 Ubuntu 20 服务器上,我尝试使用
salt 3002.2
来实现上述功能。我知道在 python 3.8 上不推荐使用 pyvenv,建议使用 python3 -m venv <dirname>
创建虚拟环境。
我的问题是,如何设置 bin_env?
virtualenv.managed
仍然相关吗?如果是的话,我们如何让它在Python发行版中选择venv?或者我们应该使用自定义函数,如下所示?
bin_env:
cmd.run:
- name : python3 -m venv {{ bin_env }}
- require:
- pkg: repo-install-dependencies
最好的方法是提供您自己的
pyvenv
包装。例如:
/usr/local/bin/pyvenv:
file.managed:
- contents:
- '#!/bin/sh'
- 'exec python3 -m venv "$@"'
- mode: '0755'
如果需要,您可以自行添加对多个不同版本的支持。
virtualenv.managed
应默认使用它,或者您可以明确地将 venv_bin
指向它。