結論としては、実行時にpythonの実行ファイルの実体にパスが通っていないと Py_initialize() で正しくモジュール検索先の初期化が出来ない。pyenv だと python はシェルスクリプトで作られているため初期化に失敗するということらしい…
この挙動が Python 側の C API の影響なのか rust-cpython 特有のものなのかは不明なので他言語 (Boost.Pythonなど) で検証する必要あり
-
-
結局原因はよくわからなかったが、とりあえずワークアラウンドとしては「実行前に対象のPythonの実体のあるディレクトリを$PATHの先頭に追記しておく」で良さそう
-
$PYTHONPATH に欲しいパッケージが入ってる site-packages へのパス指定するだけで良かったっぽい
End of conversation
New conversation -
-
-
でも非 virtualenv だと問題ないみたい… これは…
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.