Help us understand the problem. What is going on with this article?

Blender内蔵Pythonを環境構築する

 BlenderにはPythonが内蔵されていて、色々なスクリプトを行うことができます。ただし、導入されているモジュールはnumpy等に限られており、好きなモジュールを追加するには少し作業が必要なので解説します。

Windowsの場合

 デフォルトの設定の場合、Blenderは以下の場所に保存されているはずです。

C:\Program Files\Blender Foundation\Blender\2.80

 この下のPythonが内蔵されています。(自分で個別にインストールしたPythonとはまた別です)

C:\Program Files\Blender Foundation\Blender\2.80\Python\python.exe

image.png

 また、以下の場所にpip.exe(インストールするためのモジュール)があります。

C:\Program Files\Blender Foundation\Blender\2.80\python\Scripts

image.png

 !バージョンは2.81だったり2.80だったりするので、そこは各自合わせてください

 このpipにはパスが通っていない(このpipを参照するようになっていない)ので、コマンドプロンプトで例えば、

pip install pandas

 と打っても通りません。(別のPythonがインストールされている場合、そちらの方にインストールされます)

 パスが通っていないなら場所を直接参照すればよいだけの話で、

C:\Program Files\Blender Foundation\Blender\2.80\python\Scripts\pip install pandas

 とやればOK……とはならず、実はもう一手間必要で、これだとWindowsの管理者権限の関係でうまくいきません。

C:\Program Files\Blender Foundation\Blender\2.80\python\Scripts\pip install pandas --user

 これでうまくいきます。
image.png

 注意事項として、ワーキングディレクトリは

>>> import os
>>> os.getcwd()
'C:\\Program Files\\Blender Foundation\\Blender'

 になるので、なにかファイルを生成してそれを参照する、という操作を行う場合は管理者権限がないとエラーになります。管理者権限でBlenderを起動するか、ユーザーディレクトリ以下にファイルを生成・参照するようにしましょう。

Macの場合

 Macの場合、Blenderは以下の場所に保存されているはずです。

/Applications/Blender.app/Contents/Resources/2.81

image.png

 !バージョンは2.81だったり2.80だったりするので、そこは各自合わせてください

 ただ、なぜかpipがインストールされていません。pipをインストールする必要があります。

 ターミナルを開いて、

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
/Applications/blender.app/Contents/Resources/2.81/python/bin/python3.7m get-pip.py

 !pythonのバージョンは3.7だったり3.5だったりするので、そこは各自合わせてください

 で、pipが生成されるはずです。

 後は同じように、

/Applications/blender.app/Contents/Resources/2.81/python/bin/pip install pandas

 でインストール完了。

image.png

_tkinterの罠

 ちなみに、Windowsでpyplotをインポートしようとすると以下のようなエラーが出ます。
 image.png

 _tkinterがないと言われます。直前にインポートしているtkinter/__init__.pyの中身を見ると、

image.png

「もしこれがfailする場合、あなたのPythonはTk用に調整されていないかもしれません」

 個別にインストールする普通の(?)Pythonだとこれが出ないので、内蔵Python特有の問題かもしれません。

 一応、力技としてC:\Program Files\Blender Foundation\Blender\2.80\の下に別にインストールしたpythonをフォルダごとコピーするというものがあります(元々存在していたpythonフォルダはリネームして避難)。これだと環境をそのまま持っていけます。ただ、pyplot.show()でグラフを描画することはできませんでした。この方法は、内蔵Pythonではどうしてもモジュールをpipできない場合などは有効かもしれません。

 MacOSの場合、このエラーは出ませんが、やはりpyplot.show()で描画することはできませんでした。

 Blender上でグラフを描画するのは難しそうです(その必要性はあまりなさそうですが)。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした