背景

pyenvで入れたpython 3.6.0でGPUを有効にしたtensorflowを入れた。

それを、JuliaからPyCall経由で使うため、

ENV["PYTHON"]="/Users/foo/.pyenv/versions/3.6.0/bin/python"
Pkg.build("PyCall")

とPyCallをPYTHON環境変数を指定してリビルドして、

using PyCall

すると、

ImportError: No module named site

対策

pyenvで入れる際に、libpythonがスタティクリンクなのが原因の模様。
pyenv install時にCONFIGURE_OPTS="--enable-shared"と、libpythonを
ダイナミックリンク指定で作成するオプションを渡すことで対応できた。

CONFIGURE_OPTS="--enable-shared" pyenv install 3.6.0

参考資料

関連記事