Pythonは空白がお嫌い

2007年6月29日 (金)

PythonによるWEBアプリケーションフレームワークのTurboGearsは先月のバージョン1.0.2.2からPython2.5対応になった。それより前のバージョンはPython2.4。待ち望んでいたPython2.5対応なので早速TurboGears1.0.2.2をWindows環境にインストールした。もちろんPythonはバージョン2.5である。

何の問題もなくインストールは終了し、早速TurboGearsのコマンド
> tg-admin quickstart
を実行したが

Cannot find Python executable C:\Program

のエラーメッセージが表示され実行できない。Python実行プログラムが見付からない、とのたまう。Windows環境にはPython2.4と2.5が両方入っていたので、念のため2.4を削除してPython2.5のみとして実行したが同じエラーメッセージが表示される。

いろいろ試行錯誤して気が付いた。問題は \Python25\Scripts\tg-admin-script.py の1行目だった。私のWindows環境ではPython2.5は
C:\Program Files\Python25\
ディレクトリ下に存在している。なので、インストールされた上記tg-admin-script.pyの1行目は
#!”C:\Program Files\Python25\python.exe”
となっている。これが問題だった。これを
#!”C:\progra~1\Python25\python.exe”
と、空白を含まないパスにしたところ、正常に動作した。

他のスクリプトも調べたところ、nosetests-script.pyも同じだったので空白を含まないPythonのパスを指定するよう修正した。

あるPython入門書には、「Pythonはデフォルトディレクトリ(C:\直下)にインストールしたほうが良いよ。」と書いてあったが、なるほど、C:\直下ではなく C:\Program Files\下にインストールするとこのようなことが起こるのだ。

しかしPythonをC:\ の直下にインストールしたとしてもうまく行かない類似の事例を発見した。

環境変数PYTHONPATHも空白を含んではいけないのだ。開発ツールKomodoを評価のためインストールし、デバッグの調査のためリモートデバッグを行おうとした。そのKomodoリモートデバッグ用モジュールパスを環境変数PYTHONPATHに設定しなければならない。設定したのだがどうにもリモートデバッグは動かなかった。原因は、Komodoをインストールしたディレクトリの下のほうに空白を含むディレクトリがあり、それが原因で動かなかったのだ。パスをダブルクオーテーションで囲ってもNG。パスは(DOS時代の)ショートパスで指定しなければならない。これはKomodoをC:\直下にインストールしたとしても起こる問題だ。

結局、Pythonは空白がお嫌い、ということがわかった一件だった。

この記事のトラックバックURL:
http://www.momologue.net/archives/28/trackback/

コメント投稿

(承認制となっております。)


(必須)


(必須ですが表示されません)



コメント・トラックバック一覧(0)

この記事にはまだコメントがついていません。

 

QLOOK ANALYTICS