LoginSignup
2
4

More than 1 year has passed since last update.

Pythonの仮想環境

Posted at

Pythonの仮想環境

Node.jsからPythonを触ることが多くなった最近ですが、みなさんPythonのパッケージ管理ってどうしてますか?
何でもかんでもグローバルにインストールして収集つかなくなったり、複数で作業するとき開発環境をコピーしたりって、
ぶっちゃけ面倒くさくないですか?(思いますよね?)

Node.jsのエコシステムに慣れてしまったせいか、git cloneしてnpm installを叩けば依存パッケージを解決してくれて、、
みたいなお手軽感から抜け出せずにおります。

そこで今回は、Node.js並みにPythonのパッケージ管理を簡単にやる方法を考えよう!です。
外せない要件は以下とします。

  • パッケージのメタデータは(ほぼ)自動で管理してくれる
  • パッケージはコピー先で一括インストールできる

前提

OS: Mac OS Big Sur

Python: 3.9.5 (pyenv使ってるので何でも)

仮想環境の選定

まあメジャーどころを。。

  • venv

    • Python 3.3から標準装備
    • すぐ使える
  • conda

    • Anacondaをインストールする必要がある
    • オマケ感が否めない
  • virtualenv

    • サードパーティ製なので要インストール
    • Python3.3でvenvとして標準機能に取り込まれた

というわけで、「venv」一択です。

やってみよう

  • 仮想環境の作成

    • プロジェクトディレクトリ直下にenviron_nameディレクトリができます
  $ mkdir project_name
  $ cd project_name
  $ python -m venv environ_name
  • アクティベート
  source envrion_name/bin/activaate
  • 作成した仮想環境にパッケージをインストール

    • 今回は試しにsuperjsonをインストール(datetimeなんかをシリアライズ化くれるやつ)
    • なお、アクティベートするとプロンプトの先頭に環境名が表示されます
  (environ_name) project_name $ pip install superjson
  • 仮想環境にインストールされてるパッケージの確認
  (environ_name) project_name $ pip freeze
  superjson==0.0.13
  • パッケージ一覧を書き出す
  (environ_name) project_name $ pip freeze > requirements.txt
  • 仮想環境を停止する
  (environ_name) project_name $ deactivate

作成した仮想環境を再現する

今回はGitHubからクローン来ることを想定

  • 別プロジェクトを作成
  $ mkdir new_project
  $ cd new_project
  $ git clone ...  # 割愛
  • 新たに仮想環境を作ってパッケージをインストール
  (new_environ) new_project $ pip install -r requirements.txt
  • インストールされたか確認
  (new_environ) new_project $ pip freeze
  superjson==0.0.13

お、なんかいい感じでじゃないでしょうか。。ご参考までに。

参考文献

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4