2011-02-02 9 views
1

Python 2.6で構成されたWindows XPマシンでcythonを使い始めました。私はCythonサイトで簡単な例を実行しようとしましたが、例の.pyxファイルの変換はすぐに混乱するエラーで失敗します。Windowsでcythonプログラムを構築する際の問題

.pyxファイルが

def say_hello_to(name): 
    print("Hello, %s" % name) 

setup.pyは、コマンドウィンドウで

from distutils.core import setup 
from distutils.extension import Extension 
from Cython.Distutils import build_ext 

ext_modules = [Extension("hello", ["hello.pyx"])] 

setup(
    name = 'Hello world app', 
    cmdclass = {'build_ext': build_ext}, 
    ext_modules = ext_modules 
) 

のように見えますが、私は、コマンドにこのすべてが正確であることを

python setup.py build_ext --inplace 

注意を実行しますウェブページが言っていること。

結果として、私は次のような出力が得られます。

Error converting Pyrex file to C: 
-------------------------------------------------------- 
... 
def say_hello_to(name): 
        ^
-------------------------------------------------------- 

エラーメッセージは、「認識できない文字」と言います。

私は同じ例をLinuxボックスで試してみるとうまくいきます。

ここでの問題は何ですか。なぜコロンは認識できないとフラグされていますか?

+1

ちょうど推測ですが、行末に問題がある可能性がありますか?例えば。ファイルがUnixの '' \ n ''行末を持っていて、Windows上でWindowsの' \ r \ n' '行末を期待しているのであれば? –

+0

それだけです。私のウィンドウのエディタはデフォルトで '\ r \ n'に設定されていますが、Linuxの\ nに設定することができます。私はビルドを再実行し、今は完全に動作します。ありがとう、トーマス。ところで、私はあなたがコメント部分にあるときにそれを行う方法がわからないことを除いてあなたの答えを受け入れるだろう。 – sizzzzlerz

+0

あなたがそれを受け入れたいと思ったら答えとして再投稿しました;-) –

答えて

2

だけの推測

を(それは明らかに問題を解決しているため答えとして再投稿)が、それは行末に問題があることだろうか?例えば。ファイルにUnix '\n'行末が含まれていますが、Windows上でWindows '\r\n'行末が必要ですか?

いいので、それは逆です。 '\n'の行末を想定し、エディタを'\r\n'に変換しました。

関連する問題