[openrtm-staff:1141] 11/6の作業報告(河内)
河内のぶ
n.kawauchi @ aist.go.jp
2017年 11月 6日 (月) 19:00:23 JST
安藤様
河内です
本日の作業内容をお知らせします。
------------
■ミーティング
■OpenRTM-aistのWindows環境でのビルドで、Python2.7と3.6.3の両方が
インストールされている場合にエラーになる件の調査
・ビルド時、pythonは2.7を指定しているが、途中で3.6.3が走ってしまい
pythonが停止してしまう。このためmakedeffile.pyで coil120_vc**.def を
生成できず、エラーで終了する
・OpenRTM-aist\build\*.pyはPython3に対応していなかった(特にprint文)
ということで、宮本君が修正を入れてくれた。(r3060-3061)
この対応だけではビルドエラーは改善せず。
*-*-*-*-*
下記でPYTHONHOMEを設定した場合、Python3.6.3をデフォルトのパスに
インストールした場合と確認しましたが、いずれも同じエラー。
batファイルではPYTHON_DIR=C:\Python27として実行しているのに、3.6の
環境が壊れてPythonが停止している。
バイナリ生成が目的のビルドなので、当面は2.7と3.6を共存させない環境を
利用することにして先に進めます。
*-*-*-*-*
以下、確認作業メモ。
▼PYTHONHOMEを指定してみる
・下記設定でもPy_InitializeでエラーとなりPythonが停止する。
set PYTHON_DIR=C:\Python27
set PYTHONHOME=%PYTHON_DIR%
set PYTHONPATH=%PYTHON_DIR%\Lib
この実行環境はPythonのパスの順序は以下としている。
C:\Python27\;C:\Python27\Scripts;C:\Python36_x64\Scripts\;C:\Python36_x64\;C:\Python36\Scripts\;C:\Python36\;
ビルド実行前の確認ではPython環境は壊れていない
>py
Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32
>py -2
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32
★参考:WindowsでPython2/3の共存が壊れたらPYTHONHOMEを削除する
http://hakomof.hatenablog.com/entry/2017/10/21/182018
・上記サイトでPython環境が壊れた場合のメッセージが、まさに今回遭遇して
いる内容と同じ。ここの情報を見ると、PYTHONHOMEを設定していないと
Pythonのデフォルトのインストールパスが使われると読み取れます。
動作確認環境はデフォルトのパスではない場所へインストールしてます!
これが影響してるのか?
▼Pythonをデフォルトのパスへインストールしてみる
・3.6.3の32bit版だけインストール
・カスタムインストール時のデフォルトのパスへインストールする
-----
・「Install for all users」オプションにチェックを入れる
・インストール先はデフォルトのC:\Program Files (x86)\Python36-32とする
-----
・Pythonパスの順序は以下となっている
C:\Python27\;C:\Python27\Scripts;C:\Program Files (x86)\Python36-32\Scripts\;C:\Program Files (x86)\Python36-32\
・PYTHONHOMEは指定せずにビルドする
・ビルドは私の環境で行っているので、実際は下記内容のbatファイルを
実行している
-----
set PYTHON_DIR=C:\Python27
@rem set PYTHONHOME=%PYTHON_DIR%
set PYTHONPATH=%PYTHON_DIR%\Lib
set OMNI_VERSION=4.2.2
set ARCH=x86
set VC_VERSION=10
C:\cygwin64\bin\bash prepare_openrtm.sh
build.bat
------
⇒やはりPythonが停止する
----
Fatal Python error: Py_Initialize: unable to load the file system codec
File "C:\Python27\Lib\encodings\__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Current thread 0x00002ecc (most recent call first):
-----
・このビルドのためにbatファイルを実行したのと同じコマンドプロンプトで
続けてpython3.6と2.7を確認したところ、3.6の方が壊れていることを確認
-----
>py
Fatal Python error: Py_Initialize: unable to load the file system codec
File "C:\Python27\Lib\encodings\__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Current thread 0x00002890 (most recent call first):
>py -2
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32
-----
・PYTHONHOMEの設定をコメントインして確認するも同じエラー
▼Pythonを標準インストールした場合を確認する
・インストール先
C:\Users\kawauchi\AppData\Local\Programs\Python\Python36-32\
・PYTHONHOMEは指定しない・・・エラー変わらず
・PYTHONHOMEを指定・・・エラー変わらず
以上です。
---------------------------------------------------
河内 のぶ n.kawauchi @ aist.go.jp
産業技術総合研究所 ロボットイノベーション研究センター
ロボットソフトウエアプラットフォーム研究チーム
テクニカルスタッフ
More information about the openrtm-staff
mailing list