TOOCS.python

构建状态 Ansible 角色

TOOCS / Ansible 角色: TOOCS.python

/!\ 此角色已经更名 - 原名称: FlorianKempenich.python-virtualenv /!\

  • 使用 asdf(或 pyenv)安装多版本的 Python
  • 为所有版本安装 pipenv
  • 可选: 为默认版本的 Python 安装全局 pip 包

TOOCS?

TOOCS - 一键设置工具,旨在通过一键设置系统。它们提供简单可靠的方式来配置特定工具。你可以直接使用它们,或者查看其代码,作为逐步教程进行学习。

它们的名字也表明了它们的特点:尽管能够一键配置给定工具,但并不保证在_如何_实现上保持一致,新的版本可能会引入重大变化。
理解代码,确保你明白发生了什么!

需求

此角色仅适用于 MacOSX 和 Ubuntu/Debian。

角色变量

  • python_versions

  • global_pip_packages

    • 要安装的 pip 包列表
    • 这些包仅会为默认版本的 Python(列表中的第一个)安装
    • 默认值: []
  • installation_method

    • 可选值:asdf, pyenv
    • 安装方法
    • 默认值: asdf
  • asdf_skip_shell_setup

    • 安装 asdf 时跳过 shell 设置
    • 安装方法
    • 默认值: False

安装方法

asdf

使用 asdf 版本管理工具的首选和默认安装方法

asdf 的安装和配置以及 Python 的安装都委托给另一个 TOOCS: TOOCS.asdf

此 TOOCS 仅负责安装可选的全局 pip 模块。

安装后 - 使用 asdf: Shell 配置

  • 如果你使用 zsh,一切都已设置好! 在安装 asdf 时你的 shell 已自动配置。

  • 如果你没有使用 zsh,则需要一些手动设置,见: TOOCS/asdf - 非 zsh 用户

  • 如果 asdf 已经在你的机器上设置好了,可以跳过 asdf 自动的 shell 设置 => 将变量 asdf_skip_shell_setup 设置为 True


pyenv

使用 pyenv 版本管理工具的替代方法

安装后 - 使用 pyenv: Shell 配置

由于 pyenv 用于管理不同的 python 版本,需要在你的 shell 中激活。

只需将以下内容添加到对应的文件中:

  • ~/.zshrc / ~/.bashrc

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
  • ~/.zlogin / ~/.bash_profile

if command -v pyenv 1>/dev/null 2>&1; then
    eval "$(pyenv init -)"
fi

我们将初始化拆分在这两个文件之间,以确保 pyenvpipenv 的平稳操作。这样,pyenv 的激活在每个登录 shell 中仅执行一次,不会干扰由 pipenv shell 启动的子 shell。
了解更多信息: Pyenv 问题 #184 - pipenv shell 中的错误 Python


示例剧本

- hosts: localhost
  tasks:
    - include_role:
        name: TOOCS.python
      vars:
        python_versions:
          - 3.7.0
          - 2.7.15
        global_pip_packages:
          - cheat
          - howdoi
          - ansible-droplet


# 或

- hosts: localhost
  tasks:
    - include_role:
        name: TOOCS.python
      vars:
        python_versions:
          - 3.7.0
        installation_method: asdf
        asdf_skip_shell_setup: True

# 或

- hosts: localhost
  tasks:
    - include_role:
        name: TOOCS.python
      vars:
        python_versions:
          - 3.7.0
        installation_method: pyenv

许可证

MIT

作者信息

在推特关注我: @ThisIsFlorianK
了解我的更多工作: Florian Kempenich - 个人网站

关于项目

Install multiple versions of Python with some optional global packages

安装
ansible-galaxy install TOOCS.python
许可证
mit
下载
117
拥有者
The Opinionated One-Click Setups - TOOCS - Logo made with DesignEvo (www.designevo.com)