13
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonAdvent Calendar 2021

Day 11

【覚書】Pythonのバージョン管理について

Last updated at Posted at 2021-12-10

はじめに

今回は、Pythonで躓きやすいバージョン管理について、覚書を兼ねて解説(?)します。
使いやすい方法は人によって変わってくると思いますので、いろいろな方法を試していただければと思います。

Pythonでは、複数バージョンをインストールして、切り替えながら使うということが少し複雑になっています。メジャーバージョン(2系・3系)同士では動くのですが、マイナーバージョンを複数インストールすると思ったように動かないことが多々あります。そんなときに、使える方法をご紹介します。

なお、こちらのリメイク版となります。

方法

ここからはWindowsとmacOSに分けてそれぞれのおすすめの方法をご紹介します。Windowsの方はこちら、macOSの方はこちらからご覧ください。

Pythonランチャー × venv (Windows)

Windows版のPythonをインストールすると、自動的にPythonランチャー(py.exe)がインストールされます。インストールの際に、Python本体にはパスを通さず、Pythonランチャーにパスを通すことで、複数バージョンを簡単に切り替えることができます。
それにプラスして、venv(venvについては下記で説明します!)を利用することで仮想環境を構築し、プロジェクトによってパッケージも変えることができます。
詳しくは、Pythonの複数バージョンの扱い方(Windowsの場合) - ガンマソフト株式会社が分かりやすく説明されています。

pyenv × venv (macOS)

macOSでは、pyenvというソフトウェアをインストールすることによって、複数バージョンを簡単に切り替えることができます。
それにプラスして、venv(venvについては下記で説明します!)を利用することで仮想環境を構築し、プロジェクトによってパッケージも変えることができます。

venvとは

venvとは、仮想環境を構築するために、Pythonに標準で備わっているツールです。venvの利点は、なんといってもその手軽さです。
venvはPython3.3から標準機能として備わっており、Python3.3以上の場合は、何もインストールすることなく利用できます。また、仮想環境がディレクトリとして作られるため、直感的に扱いやすく問題も起きにくいです。

Anacondaは嫌い

あくまでも一個人の意見です。そうなんだなぁくらいな感じで読んでください。

確かにAnacondaは、GUIで仮想環境を扱うことができるとても便利なソフトです。
しかし、condaに対応しているパッケージしかインストールすることができず、pipと共存させてしまうと環境ごと破壊されてしまう恐れがあり、とても危険です。また、Anacondaは主に機械学習向けに作られているソフトで、他の分野のパッケージは充実しているとは言い難い状態です。

まとめ

私の環境の運用方法をまとめてみました。少しでも参考になれば幸いです。
細かい使い方などについては解説していませんが、ググっていただけると良いと思います(他力本願
分からない部分があればなんでも質問してください!

拙い文章ですが、最後までお読みいただきありがとうございました。

13
2
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
13
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?