TOOCS.python
TOOCS / Ansibleロール: TOOCS.python
/!\ このロールの名前が変更されました - 旧名:
FlorianKempenich.python-virtualenv
/!\
asdf
(またはpyenv
)を使用して複数のバージョンのPythonをインストール- すべてのバージョンのために
pipenv
をインストール - オプション: デフォルトのPythonバージョンのためにグローバルpipパッケージをインストール
TOOCSとは?
TOOCS - Opinionated One-Click Setupsは、システムをワンクリックでセットアップするためのツールやAnsibleロールのセットです。それらは特定のツールをセットアップするための簡単で信頼性のある方法です。そのまま使用することもでき、コードを確認してステップバイステップのチュートリアルとして使うこともできます。
名前が示す通り、意見が反映されています: 特定のツールをワンクリックでセットアップすることを保証しますが、どのように実現するかの一貫性は保証しません。新しいリリースでは破壊的な変更が導入される可能性があります。
コードを読み、何が起こっているかを理解してください!
要件
このロールはMacOSXとUbuntu/Debianでのみ動作します。
ロール変数
python_versions
- インストールするPythonバージョンのリスト
- リスト順が優先される順序になります
詳しくはこちら: インストールするバージョンのリストは順序付きです - 必須
global_pip_packages
- インストールするpipパッケージのリスト
- パッケージはデフォルトのPythonバージョン(リストの最初)にのみインストールされます
- デフォルト:
[]
installation_method
- 有効な値:
asdf
,pyenv
- インストール方法を参照してください
- デフォルト:
asdf
- 有効な値:
asdf_skip_shell_setup
asdf
をインストールする際のシェル設定をスキップします- インストール方法を参照してください
- デフォルト:
False
インストール方法
asdf
asdf
バージョンマネージャを使用した推奨かつデフォルトのインストール方法
asdf
のインストールと設定、およびPythonのインストールは別のTOOCSに委任されています: TOOCS.asdf。
このTOOCSは、オプションのグローバルpipモジュールのインストールのみを担当します。
インストール後 - asdf
を使ったシェル設定
zsh
を使用している場合、すべて準備完了です!asdf
のインストール中にシェルが自動的に設定されました。zsh
を使用していない場合は、手動で設定が必要です。: TOOCS/asdf - 非zsh
ユーザーあるいは、すでにマシンに
asdf
がセットアップされている場合、asdf
の自動シェル設定をスキップすることを検討してください => 変数asdf_skip_shell_setup
をTrue
に設定します。
pyenv
pyenv
バージョンマネージャを使用した代替方法
インストール後 - pyenv
を使ったシェル設定
pyenv
は異なるPythonバージョンの管理に使用されるため、シェル内で有効化する必要があります。
次の行を対応するファイルに追加してください:
~/.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
初期化をこれらの2つのファイルに分ける理由は、pyenv
とpipenv
の両方でスムーズに機能させるためです。この方法で、pyenv
の有効化は各ログインシェルで1回だけ行われ、pipenv 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
著者情報
Twitterでフォローしてください: @ThisIsFlorianK
私の仕事についてもっと知りたい方はこちら: Florian Kempenich - 個人ウェブサイト
Install multiple versions of Python with some optional global packages
ansible-galaxy install TOOCS.python