[openrtm-staff:1146] Re: 11/6の作業報告(河内)

片見剛人 t-katami @ aist.go.jp
2017年 11月 7日 (火) 11:34:16 JST


河内さま

片見です。

マスターマネージャーの構成ですが
以下のような修正をお願いしたいのですが、
何か問題があれば、
ご指摘をお願いします。
#rtcd_python.exeがうまく動作しない原因が
#わからないのですが、
#rtcd_python.exeを使用することにしてあります。

** rtc.batをrtcd-python-daemon.batに変名。
c++のマネージャの実行ファイル名はrtcd.exeですので、
わかりやすくするために変名をします。

** ディレクトリ
+--Python27
   +--rtcd-python-daemon.bat
   |
   +--rtcd
   |  +--rtcd_python.exe
   |  +--python27.dll
   |  +--rtc.conf
   |  +--rtcd-lib
   |
   +--rtcprof
      +--rtcprof_python.bat
      +--rtcprof.py

** パスの追加
c:\python27\rtcd、c:\python27\rtcprofのパスを通します。

** rtcd-python-daemon.bat
%~dp0\rtcd\rtcd_python.exe -d -f %~dp0\rtcd\rtc.conf

** rtcprof_python.bat
@echo off
rem Copyright (C) 2010
rem     Shinji Kurihara
rem     Intelligent Systems Research Institute,
rem     National Institute of
rem         Advanced Industrial Science and Technology (AIST), Japan
rem     All rights reserved.
python.exe %~dp0\rtcprof.py %*

** Start Python RTC daemon
- リンク先:C:\Python27\rtcd-python-daemon.bat
- 作業フォルダ:C:\Python27\


よろしくお願いします。




________________________________________
差出人: openrtm-staff <openrtm-staff-bounces @ openrtm.org> が 河内のぶ <n.kawauchi @ aist.go.jp> の代理で送信
送信日時: 2017年11月6日 19:00:23
宛先: openrtm-staff @ openrtm.org
件名: [openrtm-staff:1141]        11/6の作業報告(河内)

安藤様

河内です

本日の作業内容をお知らせします。
------------
■ミーティング

■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
産業技術総合研究所 ロボットイノベーション研究センター
ロボットソフトウエアプラットフォーム研究チーム
テクニカルスタッフ

_______________________________________________
openrtm-staff mailing list
openrtm-staff @ openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-staff


More information about the openrtm-staff mailing list