pipを使えないライブラリ（FBXSDK）をインストールするのに成功したけど手間取った話（Win/Mac）

　AutoDeskが定める3Dデータ標準形式であるfbxは、アバター等の3D形式を扱う際においてデファクトスタンダードとなっていますが、これを扱うための[SDK](https://www.autodesk.com/developer-network/platform-technologies/fbx-sdk-2019-0)がAutoDeskにより公開されています。本来はC++のためのものらしいですが、Python用で同じ操作をするための（バインディングというらしいです）ライブラリもあり、そちらの方が簡単そうなので導入してみることにしてみます。

　ただしこのSDK、

* Python3.3系または2.7系しか対応していない
* pipでインストールすることが出来ない

　という代物でして、最新のPythonをインストールしてpipで一発だぜイェーイという感じではなかったので、Win/Mac両環境において備忘録代わりに手順を示しておきたいと思います。

#Windowsの場合

　基本的な手順は[この方の記事](https://codelabo.com/997/)にあるのですが、一点躓いたポイントがあるのでそこを中心に解説。

　まずは https://www.python.org/downloads/ からPythonをインストールする必要がありますが、最新のものだとライブラリが使えないので、旧式のものをインストールする必要があります。また上に挙げた2バージョンのうち、**なぜか3.3系はインストーラが公開されていないという謎の状態なので、実質的には2.7系しか選択肢がない**ということになります。

https://www.python.org/downloads/release/python-2716/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/fa44da68-46e5-1399-fda1-f9caed9f4212.png)

　上の画像は現時点での2.7系での最新（ややこしいな）である2.7.16のインストーラの配布ページになります。**予めネタバレをすると**、ここで「64bitOSだから当然x64でしょ！」と`Windows x86-64 MSI installer`をDLすると後で詰みます。理由はよくわかりません。ぱっと見AMDとIntelの違いかな……と思いましたが、他のライブラリは余裕で動いているので違いそうです。詳しい人教えてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/41777715-ad7b-c80e-69c8-9927139be55d.png)

　「Windows x86-64 MSI installer」の方（x64って書いてるのに……）ではなく「Windows x86 MSI installer」の方をDLしてください。

　さて、インストーラを回すと、`C:\Python27`というフォルダが出来ているはずなので、その下にある`C:\Python27\Lib\site-packages`にライブラリファイルを入れていきます。FBXSDKのインストーラを回すと以下のようなフォルダが出来るはずなので、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/1c5a392b-12d2-a8a7-39a9-172b22442193.png)

　「Python27_x86」（2.7系の32bit）（わかりづらいですがx86は32bitを表します）を選択して、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/8717d1e5-c136-7577-fc8a-f71f8ab316b1.png)

　中のファイルを……

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/373cdfd5-1ed2-64c0-2425-144a787b25b5.png)

　こんな感じにPythonの方のファイルに入れます。

　PATH（追加ライブラリを参照するパス）についてはPythonをインストールした時点で通っているはずですが（以下は、sys.pathで確認した図）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/eceb8c0d-d03a-0af6-82f6-fc5f2ba81e8d.png)

　もしなければ、`sys.path.append(追加したいパス)`で追加できるはず。あまりない状況だとは思いますが……。

　さて、これでライブラリがインストールできたので、Python上で`from fbx import *`を打ってエラーがなければインストール完了。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/2dbcfdc4-54e9-5a39-de34-beb85d443790.png)

　ちなみに最初64bit版のPythonインストーラでやった所、以下のようなエラーが出ました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/b75b7232-0928-80f8-7eaf-f8c619c184e1.png)

　`ImportError: DLL load failed: 指定されたモジュールが見つかりません`😭

　ちなみに赤丸の部分が、成功したバージョンとの相違点。「手順は解説ページと完全に合っているはずなのに、なぜ……」と半日ぐらい悩み続けていましたが、「このAMD64ってのがよくなさそうだな（適当）」という仮説を基に、ためしに32bitを入れてみたら上手くいった、というのが実際の流れになります。ちなみにOSはWindows10、もちろん64bitです。CPUは（たぶんあまり関係ないですが）Intel Core i9-9900K。

#Macの場合

　Macの場合は`pyenv`を使えるので、導入さえしてしまえばもう少し簡単になります。3.3にも入れられます。`pyenv`の導入方法については[この方の記事](https://qiita.com/Kos-Ne/items/cbfe98ea7aed6ef66ed8)とかがわかりやすいので割愛させてください。

　一点PATHで躓いた点があって、簡単にいうと上の解説ページにあったPATHを追加しても通りませんでした。ちなみにPATHについてはMacは、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/2448f0d4-091d-717d-47df-05e0338b1ee6.png)

　ユーザーディレクトリ直下にある`.bash_profile`というファイルで管理していて、他の解説記事だとコマンドだけでオシャレにこれをPATHを追加する方法がのっていますが、ファイル自体を開いた方がわかりやすいと思うのでその方法でいきます。

　ターミナルを開いた状態で`open .bash_profile`と打つと

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/812d5c4c-a8c0-1b53-e4b0-d4d59c7e878f.png)

　こんな感じのテキストファイルが開かれると思います。要はここに乗っているテキストがそのままPATH群となる訳です。（といった感じでファイルが目に見えた方が、初めての人は安心するのではないでしょうか？）（少なくとも私はそう😅）

　で、ここの末尾に直接テキストで`export PATH="$HOME/.pyenv/shims:$PATH"`を打ち込んで保存！　私の環境ではとりあえずこれでうまくいきました。

　　後は、pyenvに3.3系のpythonを入れた後、`~⁨/.pyenv⁩/⁨versions⁩/⁨3.3.7⁩/⁨lib`に⁩FBXSDKのライブラリファイルを置きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/a48debf4-8a72-bfc3-2dd1-a763641c7548.png)

　こんな感じ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288125/72408f7d-4f60-27e4-36af-d076f8a7ae30.png)

　インポートも上手くいきました。ところでWindowsだとOS環境を示していたところにある`[GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.46.4)] on darwin`なる文字列の意味がまったくわかりませんが、いずれわかりたいと思います。

　環境は、MacBook Pro (13-inch, 2018）、macOS Mojave 10.14.6、プロセッサ　2.3 GHz Intel Core i5といった感じです。