(結論)忙しい人のために
下記のpackage_name
を必要なモジュール名に変更して、管理者としてコマンドを実行するとBlenderPythonにモジュールをインストールすることができます。
"C:/Program Files/Blender Foundation/Blender 4.1/4.1/python/bin/python.exe" -m pip install package_name
BlenderPythonの仕様
標準ライブラリの一覧を取得
まず初めに、BlenderPythonと一般的なPythonの標準ライブラリに違があるかどうかを調べるために、以下のコードをそれぞれの環境で実行し、その差を調べました。
import sys
mod_bl = sys.modules.keys()
print(mod_bl)
標準ライブラリの違い
今回は特に、一般的なPythonの環境には含まれていて、BlenderPythonには含まれていない標準ライブラリを調べることを前提に、比較したところ、以下のような結果となりました。
モジュール | 機能 (ChatGPTによる回答) |
---|---|
_codecs_jp | Pythonの内部で使用されるコーデック(文字コード変換用のエンコーダとデコーダ)の1つです。特に、日本語の文字コードに関連するコーデックを提供します。 |
_multibytecodec | Pythonの内部で使用されるマルチバイト文字列のエンコーディングとデコーディングに関するコーデックを提供します。これには、多くのアジア圏の言語で使われる文字コードへの対応も含まれます。 |
encodings.cp932 | Windowsで一般的に使用される文字コードであるCP932(またはShift-JIS)に関するエンコーディングとデコーディングを提供するコーデックです。日本語のテキストファイルなど、CP932でエンコードされたデータを扱う際に使用されます。 |
pywin32_system32 | PythonでWindowsシステムの機能にアクセスするためのモジュールです。このモジュールには、Windowsのシステム関連の機能やAPIにアクセスするための関数が含まれています。 |
pywin32_bootstrap | pywin32パッケージの一部であり、Windows上のPythonでWin32 APIへのアクセスを提供します。これにより、Windowsシステムとの相互作用やシステムレベルのタスクをPythonから実行することができます。 |
実行の結果、主に文字コード関係のモジュールがBlenderには含まれていないことが分かりました。実際にBlenderPythonは日本語の入力に対応しておらず、使用できる文字コードが限定されていることが関係しているかもしれません。一方で、sys
、os
などのよく使用されるモジュールはBlenderPythonでも使用できることが分かります。
BlenderPythonで外部モジュールをimport
上記の実験で、通常のPythonとBlenderPythonでは標準ライブラリに大きな違いはないことが分かりました。ここでは、標準では含まれていないライブラリをBlenderPythonにimportする方法を紹介します。通常のPythonでは、python pip insatll
でインストールを行っていますが、BlenderPythonの実行ファイルを環境変数に登録していないため、この方法ではBlenderPythonに変更を反映させることはできません。パスを環境変数に登録する方法も考えられますが、通常のPythonと競合する可能性があるため現実的ではありません。そこで、BlenderPythonのインタープリターの実行可能なファイルを直接指定することで実現します。
"C:/Program Files/Blender Foundation/Blender 4.1/4.1/python/bin/python.exe" -m pip install package_name --no-warn-script-location
※コマンドプロンプトで実行する場合は、管理者としてコマンドプロンプトを起動して実行してください。
※"package_name"の部分を必要なモジュール名に変更して実行してください。
※バージョンによってはディレクトリのパスが異なる可能性があります。Program Files/Blender///python.exe
のようにpython.exe
ファイルを環境に合わせて指定してください。
モジュールの動作確認
次に、実際に上記の方法でモジュールをインポートして、正しく動作することを確認します。今回は、Blenderとの相性が良さそうなOpenCV
をインポートして実行確認します。
OpenCVのインストール
"C:/Program Files/Blender Foundation/Blender 4.1/4.1/python/bin/python.exe" -m pip install opencv-python --no-warn-script-location
画像の読み込みと表示
下記のプログラムをBlenderのスクリプトに記述し実行します。
import cv2
# 画像の読み込み
img = cv2.imread('C:/Users/cat.jpg')
# 画像の確認
cv2.imshow('Preview',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
実行結果(インストール前)
以下の画像のように、パッケージをインストールしていない状態で実行するとNo module named 'cv2'
のようにエラーが表示されます。
実行結果(インストール後)
OpenCV
のパッケージを上記のコマンドを実行してインストールした後に実行すると、正しく動作することを確認できました。
モジュールの削除
BlenderPythonで正しく動作しなかった場合に備えて、インストールしたファイルを削除する方法を提示しておきます。以下のコマンドを管理者として実行してください。
"C:/Program Files/Blender Foundation/Blender 4.1/4.1/python/bin/python.exe" -m pip uninstall package_name
※Program Files/Blender///python.exe
のようにpython.exe
ファイルを環境に合わせて指定してください。
※"package_name"の部分を適当なモジュール名に変更して実行してください。
参考