PySide2を使用したパッケージを仮想環境(venv)にeditableモードでインストール

タイトルの方法を示します。

pyproject.tomlを作成

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "tpyside"
version = "1.0.0"
dependencies = [
    "pyside2"
]

仮想環境(venv)を作成

任意のフォルダで以下コマンドを実行

python -m venv venv

venvを有効化

今回はpowershellを使用します。 ※コマンドプロンプトを使用する方法もあります。

venv内のActivate.ps1によりvenvを有効化します。

.\venv\Scripts\Activate.ps1

以下画像の様にターミナルの行の先頭に(venv)が付くと、venvは有効化されております。

パッケージをインストール

venvが有効されている状態で以下を実行します。
–editableによりeditableモードでパッケージがインストールされます。

python -m pip install --editable .

コマンドにより、venv\lib\site-packagesフォルダに以下がインストールされます。

  • PySide2関連(PySide2、shiboken2) ※pyproject.tomlのdependenciesに記載したもの
  • tpyside ※インストール対象のパッケージ(pyproject.tomlのnameに記載したもの)

※venvが有効化されていない場合は、仮想環境(venv内のsite-packages)にソフトがインストールされません。

【コマンド実行前】

【コマンド実行後】

インストールしたパッケージを利用

以下のmy_main.pyでは、インストールしたパッケージ(tpysideのgui)を使用しております。
VSCode右上の実行ボタンにより、my_main.pyを実行します。

この時、venv内のインタプリターを使用していることを確認してください(上記画像の右下の赤枠部を参照)。
以下の様に、WindowsApps内のインタプリターも使用可能ですが使用しません。

エラー発生時の対応:UnicodeDecodeError

my_main.pyを実行した時に以下エラーが出る場合があります。

Fatal Python error: init_import_site: Failed to import the site module 
Python runtime state: initialized 
Traceback (most recent call last): 
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2800.0_x64__qbz5n2kfra8p0\lib\site.py", line 617, in <module> 
    main() 
ython.3.10_3.10.2800.0_x64__qbz5n2kfra8p0\lib\site.py", line 532, in venv    addsitepackages(known_paths, [sys.prefix]) 
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2800.0_x64__qbz5n2kfra8p0\lib\site.py", line 387, in addsitepackages    addsitedir(sitedir, known_paths) 
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2800.0_x64__qbz5n2kfra8p0\lib\site.py", line 226, in addsitedir    addpackage(sitedir, name, known_paths) 
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2800.0_x64__qbz5n2kfra8p0\lib\site.py", line 179, in addpackage    for n, line in enumerate(f): 
UnicodeDecodeError: 'cp932' codec can't decode byte 0x88 in position 41: illegal multibyte sequence

環境変数にPYTHONUTF8=1を追加することで、エラーが無くなります。
環境変数を反映させるために、ターミナルやVSCodeを再起動する必要があります。

エラー発生時の対応:Could not find the Qt platform plugin “windows” in “”

my_main.pyを実行した時に以下エラーが出る場合があります。

qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

以下環境変数を追加することで、エラーが無くなります。
qwindows.dllの場所を指定する必要がありますが、今回はvenv内のPySide2を使用するため、「venv内のPySide2内のqwindows.dllが格納されているフォルダ」にパスを通します。

  • 環境変数:QT_QPA_PLATFORM_PLUGIN_PATH
  • 値:C:\Users\<ユーザー名>\OneDrive\ドキュメント\myDoc\PROGRAMMING_GITHUB\python\test_pyside_with_pytest\venv\Lib\site-packages\PySide2\plugins\platforms

※環境変数を反映させるために、ターミナルやVSCodeを再起動する必要があります。

【設定イメージ】

コメント

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