スポンサーリンク

Python3.8 → Python3.11に移行した(備忘録)

最近仕事の息抜きにPythonを使ったテンプレートマッチングツールを作って遊んでます。
元々PC内にPython3.8.2をインストールしていて、3.8系のままツールを作っていたのですが、公式を確認したところ最近(2022年10月24日)3.11.0がリリースされたとのこと。せっかくなので最新のPython3.11系に移行してみました。

Python3.11をインストール

  1. 公式からWindows用のインストーラー(64bit)をダウンロード
  2. ダウンロードしたpython-3.11.0-amd64.exeを実行

Python3.8の方について記憶が定かではありませんが私はCドライブ直下にpythonというディレクトリを作り、その中にインストールしていました。
今回インストールするPython3.11もなるべく同じ構成としておきたかったのでCustomize installationの方を選択しました。


ここは特に変更しなかったかも。


Customize install locationをいじったくらい?


インストール中


インストール直後の表示、とりあえずDisable path length limitも選択しました。


無事にインストール完了。


インストール後のC:\pythonディレクトリ、C:\python\python311ディレクトリの構成。
特に問題無さそう。
Python3.8の方は消す必要は無い気がするので今のところそのまま残しています。

環境変数差し替え

インストール時にPathについて設定するオプションを選択してないので、手動で環境変数を弄りました。

変更前の状態でC:\python以下にインストールしたPython3.8を参照してることを一応確認。
※コマンドプロンプトでwhichが使えているのはclinkをインストールしているため。便利。


変更前の環境変数を確認したところpython.exeを含むC:¥python¥python38\ディレクトリと、pipを含むC:\python\python38\Scripts\ディレクトリが設定されていました。


python38 → python311に書き換えました。


※ユーザー環境変数とシステム環境変数の両方のPathを書き換えました。


書き換え後、コマンドプロンプトを開きなおして最新の環境変数を向いていることを確認。
pipのバージョンは22.3でした。

venvを使った仮想環境について

venvを使った仮想環境はpython本体を仮想環境作成先のディレクトリにコピーしているため、python3.8で作ったvenv仮想環境はpython3.11をインストールしたからと言ってpython3.11になってはくれません。当然と言えば当然。
一度venvで作成した仮想環境をディレクトリごと削除し、python -m venv venvなどから再度仮想環境を作り直してあげる必要がありました。

pipで管理するモジュールについて

pipでインストールするモジュールについて一部Python3.11に対応してないものがありました(PySide2とか)。
ということでrequirements.txtに記述したモジュールについてvenvの仮想環境構築後、pip install -r requirements.txtでのインストールがこけたら調査が必要。
ちなみにPySide2でいえばPySide6というPython3.11に対応したモジュールがあるのでこちらをインストールすると良い。

今作ってるツールを例とするとpython3.8 → python3.11への移行で添付のようなモジュールに関する修正が必要でした。

PySide2とPySide6については以下参考
https://pypi.org/project/PySide2/
https://pypi.org/project/PySide6/

メモ

今のところWindowsで動かすツールを作ってるのでPythonはDockerを使ったりせず、Windowsに直でインストールしています(Docker使った開発環境を作ってみたいと挑戦したのですが、コンテナのseleniumからホストのブラウザ操作する方法が分からず憤死)。

Python3.11からPythonを高速化しようという試みが行われているみたい?
自分で作るツールは規模の小さなものなので残念ながら3.8との違いは実感できませんでした。。

参考リンク

「Python 3.11」からその成果が得られ始めたPython高速化プロジェクトとは:Python最新情報キャッチアップ – @IT
Python3.11が高速化しているかベンチマークしてみた | DevelopersIO

タイトルとURLをコピーしました