思いつくままを綴る雑記帳

SCONSビルドに関するTips

猫さんがBlenderをビルドする際には
VisualStudio2008+SCONSという環境でビルドしていますが
猫さんのWindows環境はログインアカウントが日本語になっています。
アカウントを作った時にはSCONSでビルドするなんて
考えて無かったので普通に日本語で作ったんです・・・

ところがこの環境で普通にビルドするためにSCONSを起動すると
ビルドできません!!とエラーが発生してたんですよ・・・

SCONSのバージョンによって表示される内容は微妙に違うと
思いますが・・猫さんはPython2.6とSCONS2.0.1を使っているので

scons: Reading SConscript files ...
================


@@ ABORTING BUILD @@

PROBLEM DETECTED WITH ENVIRONMENT
---------------------------------


A problem with one or more environment variable was found
Their value contain non-ascii characters. Check the below
list and override them locally to be ASCII-clean by doing
'set VARNAME=cleanvalue' on the command-line prior to
starting the build process:

HOMEPATH = \Documents and Settings\○○
APPDATA = C:\Documents and Settings\○○\Application Data
USERNAME = ○○
USERPROFILE = C:\Documents and Settings\○○

なんて、エラーが出ます。
○○ってところが日本語のアカウントです。

で、これまでは仕方なくAnsiのアカウントを作って
その環境でビルドをしていたのですが、原因が判明したので
今日はその話です。

Blenderのソースディレクトリの中で
Blender/build_files/scons/tools/btools.pyというファイルが
あります。
この中のcheck_environという関数がビルド環境のチェックを
しているのですが、この中に次の一文があります。

os.environ[i].decode('ascii')

これが原因だったんです・・・
システムパスを調べているんですが、アカウントが日本語なので
当然いくつかの環境変数に日本語が含まれています。
その部分が検査ではねられていてビルドをさせてくれなかったんです。

そこでこの部分を次のように変更しました。

os.environ[i].decode('CP932')

これでビルドをしてみると無事にビルドできました。
CP932というのはエンコードの日本語に対応したページの
ことですね・・・
これでこれまでビルドするためにアカウントを切り替えていた
作業がいらなくなりました。
C=(^◇^ ; ホッ! ひとつ楽になった(○゜▽゜○)/ ヨッ!!

でも本来ここはAscii文字以外のものをはじくための処理なので
この修正はやらないほうがいいんだけどね・・・
まぁビルドを始める前の事前検査だからそのへんはありかも!
Blenderは複数言語対応が必要なので、この事前検査はやること
ないと思っている猫さんです。
スポンサーサイト

コメント

コメントの投稿

URL
コメント

パスワード
秘密
管理者にだけ表示を許可する

トラックバック

トラックバックURL : http://perfectcat.blog101.fc2.com/tb.php/77-feda92c1
<< BlenderのScriptsフォルダ周りが改変・・ | TOP | LuxRenderのビルドメモ >>