pyenv と pipenv による python 環境
2017-11-20 Mon.
概要
python の環境構築では pyenv を代表として、virtualenv、pyenv-virtualenv、venv... 等が存在します。
そんな中、比較的最近登場した pipenv というライブラリが virtualenv を pip と連携してうまく使えるようにしてくれており、これらの紛らわしいライブラリの選定に終止符を打ってくれそうです。
解説
- pyenv を使用します
- これは python のビルドを行うためだけに使用し、今回はバージョン管理には使用はしません
- pyenv で任意の python をインストールし、global に設定します
- pyenv の shims 経由でも問題ありませんが、今回 pyenv によるバージョン切り替えは行わないため、ビルドしたバイナリに直接 PATH を通しても問題ありません
- pipenv をインストールします
- global に設定した python の pip でインストールします
- pipenv で環境を作成します
- 任意のディレクトリで
$ pipenv install
することで virtualenv が~/.local/share/virtualenvs
以下に作成されます - 指定しない場合は元と同じ python バージョンで virtualenv が作成されます
--python 3.x.x
のように指定した場合、そのバージョンが pyenv でインストールされた上で virtualenv が作成されます- 指定できるバージョンは pyenv でインストール可能なものなら対応しているので、 miniconda の環境も作れます
- 任意のディレクトリで
Warning: Python 3.5.3 was not found on your system…
Would you like us to install CPython 3.5.3 with pyenv? [Y/n]:
- pipenv 経由でプロジェクトを実行します
$ pipenv run <commands>
で該当の virtualenv の python を PATH に追加した状態で以降のコマンドを実行します。Ruby の bundle exec に近い動作をします$ pipenv shell
で現在の shell で virtualenv の python に切り替えます$ pyenv local
に相当するコマンドは現在はないようです
Other Works
2024-05-11 Sat.
Powerfully Typed TypeScript
- TSKaigi 2024
2024-05-10 Fri.
pnpm の node_modules を探検して理解しよう
- ドワンゴ教育サービス開発者ブログ
2024-03-17 Sun.
neverthrow で局所的に Result 型を使い、 try-catch より安全に記述する
- Zenn
2023-12-20 Wed.
レガシーブラウザ向けのビルドオプションを剪定する
- ドワンゴ教育サービス開発者ブログ
2023-05-26 Fri.
Next.js で dynamic import を使い Client だけで動かす Component を実現する
- Zenn
2023-05-02 Tue.
Node.js でファイル名から拡張子を取り除く/取り出すために path.parse を使う
- Zenn
2023-02-27 Mon.
WSL2 で外部からアクセス可能にするために bridge mode を有効にする
- Zenn
2023-01-26 Thu.
init.vim & dein から init.lua & lazy.nvim へ、シンプル設定で移行した
- Zenn
2023-01-13 Fri.
kindle の本をブクログ形式の csv でエクスポートする@2023初春
- Zenn
2023-01-10 Tue.
自宅サーバの移設に際して docker から nerdctl に移行した
- Zenn
2023-01-10 Tue.
自宅サーバを rootless に移行した際のトラブル対応
- Zenn
2021-11-11 Thu.
並列実行した Promise で throw されても全てハンドルしたいときの方法(allSettled, finally, etc...)
- Zenn