Python版FBX SDKをWindowsにインストールする

# Python版FBX SDKをWindowsにインストールする

Python版FBX SDKをWindowsマシンにインストールしました。

[FBX SDK はC++よりもPythonの方が圧倒的に簡単だ！：準備編](https://codelabo.com/997/)
こちらの記事を参考にインストールしたのですが、いくつかつまづいた点があったので、忘れない内にメモを残します。

環境はこんな感じです。

- Windows 10 64bit
- Python 2.7 （なぜ3系でないかは後述）
- FBX SDK 2019.5 (2019年9月26日時点で最新)


ちなみに、Macにもインストールしたので、別記事にまとめました。
[Python版FBX SDKをMacにインストールする](https://qiita.com/segur/items/e09d464b5e2ff0c8725e)


# Python版FBX SDKのインストーラーを入手する

こちらのサイトにアクセスします。
[Autodesk FBX Software Developer Kit](https://www.autodesk.com/developer-network/platform-technologies/fbx-sdk-2019-5)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/c8fb3849-c989-acf3-f4f1-1b6d550079d0.png)

少しスクロールすると、 `FBX SDK 2019.5 Python Windows` というリンクがあるので、クリックすると、 `fbx20195_fbxpythonsdk_win.exe` というインストーラーがダウンロードされます。

インストーラーを起動して、指示に従ってインストールします。
インストール先のフォルダはデフォルトのままの場合、以下になるようです。

`C:\Program Files\Autodesk\FBX\FBX Python SDK\2019.5`

これでインストール完了かと思いきや、まだ開発を始めることはできません。



# Python 3.3版 ではなく 2.7版 を選ぶ

`C:\Program Files\Autodesk\FBX\FBX Python SDK\2019.5\lib`
を開くと、2.7版と3.3版があり、それぞれ32bit版と64bit版があることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/69aea602-15fc-ffab-30ff-2883ab3fd759.png)
3.3版はPython 3.6等、3系のPython全て利用できるわけではなく、あくまで3.3でしか利用できないそうです。Python 3.3のインストーラーは公式ではもう配布されていませんので、ここでは2.7版を利用することにします。


# Python 2.7をインストールする

もし、Python 2.7をまだ導入していない場合は、ここで導入しておきましょう。
手順は、以前こんな記事を書きましたので、こちらをご参照ください。

[WindowsにPython2.7とPython3.7が共存できるようにインストールする](https://qiita.com/segur/items/23f276320216c3aa7cf7)

上記の記事にしたがってインストールした場合、Python 2.7は以下にインストールされます。

`C:\Python27`



# Python 2.7にFBX SDKをインストールする

- OSが64bitの場合 `C:\Program Files\Autodesk\FBX\FBX Python SDK\2019.5\lib\Python27_x64`
- OSが32bitの場合 `C:\Program Files\Autodesk\FBX\FBX Python SDK\2019.5\lib\Python27_x86`

を開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/1fb057aa-ebc0-c10b-84f3-ecbbada9eff2.png)

以下の３つのファイルがありますますので、 `C:\Python27\Lib\site-packages` の直下にコピーします。

- `fbx.pyd`
- `FbxCommon.py`
- `fbxsip.pyd`

これでインストール完了です。



### pipenvを使っている場合

pipenvの場合、site-packagesフォルダの場所が違いますので、ご注意ください。

```bash
pipenv --venv
```

で表示されたフォルダーの配下の `Lib\site-packages` にあります。



# `fbx` がインポートできるか試す

Pythonのコードから `fbx` がインポートできるか試してみましょう。

`test.py` というファイルを作って、以下のコードを記述します。

```python:test.py
from fbx import *
```

このコードを **Python 2.7** で実行してみます。

`py` コマンドが使えるなら以下のように実行します。

```bash
py -2 test.py
```

この際、特にエラーが発生しなければ、インポートは成功です！



## `ModuleNotFoundError` が発生する場合

もし、以下のエラーが出た場合は、Python 3系で実行しているかもしれません。

```
ModuleNotFoundError: No module named 'fbx'
```

`fbxという名前のモジュールが見つかりません` という意味のエラーメッセージです。

本記事の手順では、FBX SDKを3系にはインストールしていませんので、上記のエラーが発生します。

Python 2.7で実行できているか確認してみてください。



## `ImportError` が発生する場合

以下のエラーが発生した場合は、x64とx86を間違えてインストールしている可能性があります。

```
ImportError: DLL load failed: %1 は有効な Win32 アプリケーションではありません。
```

以下のファイルがインストールできているご確認ください。

- OSが64bitの場合 `C:\Program Files\Autodesk\FBX\FBX Python SDK\2019.5\lib\Python27_x64`
- OSが32bitの場合 `C:\Program Files\Autodesk\FBX\FBX Python SDK\2019.5\lib\Python27_x86`



# さいごに
こちらの記事を参考にさせていただきました。わかりやすい記事をありがとうございます。

- [FBX SDK はC++よりもPythonの方が圧倒的に簡単だ！：準備編](https://codelabo.com/997/)