LoginSignup
2
2

More than 5 years have passed since last update.

"Symbol not found: _PyUnicodeUCS2_AsASCIIString"エラーの解決法

Last updated at Posted at 2018-03-09

状況

TensorFlowの学習済みモデルをCoreML用のモデルに変換するツールtfcoremlをインストールし、実行しようとすると下記のようなエラーに遭遇しました。

(tensorflow_coreml) $ python converter.py 

ImportError: dlopen({path-to-tensorflow}/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so, 6): Symbol not found: _PyUnicodeUCS2_AsASCIIString

tensorflowのimportに失敗してるようなので、確認してみます。

(tensorflow_coreml) $ python
>>> import tensorflow

結果は同様のエラー。

ちなみに上記環境でのpythonバージョンは2.7.11です。

python 3.5.xで同様の手順をやってみたところ、import tensorflowは動作しました。ただし、tf-coremlでは3.xはサポートされてないので、2.xで動かす必要があります。

解決法

"Symbol not found: _PyUnicodeUCS2_AsASCIIString"でググってみて出てくるラインナップを見ると、tf-coremlの問題というよりも、macOS 10.13 High Sierraの問題のようです。

この回答を見て、以下を実行しました。

$ CFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix openssl)/include" \
> LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix openssl)/lib" \
> PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2 \
> pyenv install -v 2.7.11

あれやこれやオプションをつけてpyenvの2.7.11をインストールし直してるようです。

このpyenv環境下でもう一度TensorFlowのインストールからやり直すことで、先ほどのimportが通るようになり、tfcoremlも入れ直して動くようになりました。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2