2012-03-23 11 views
1

私はcythonを使い始めて、最初のプログラムをコンパイルしようとしています。最初のcythonプログラムをコンパイルするときのエラー

def show(): 
    print ("Hello World") 

とfolowingコードをsetup.py::私はである「cythonプログラム」と呼ばれるフォルダ内の

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 
) 

両方の私は、次のコードでhello.pyxを作成しましたC:\ Python32 \ cythonプログラム。 CythonはC:\ Python32 \ Lib \ site-packages \ Cythonにあります。私は、私は非常に単純な何かをしないのですが、私はそれが何であるかを見つけ出すように見えることはできません推測している

Traceback (most recent call last): 
    File "C:\Python32\cython programs\setup.py", line 10, in <module> 
    ext_modules = ext_modules 
    File "C:\Python32\lib\distutils\core.py", line 136, in setup 
    raise SystemExit(gen_usage(dist.script_name) + "\nerror: %s" % msg) 
SystemExit: usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] 
    or: setup.py --help [cmd1 cmd2 ...] 
    or: setup.py --help-commands 
    or: setup.py cmd --help 

error: no commands supplied 

:私はsetup.pyを実行したときしかし、私は次のエラーを取得します。どんな助けもありがとう。

+0

私は、コマンドラインでsetup.pyに引数を与えていないと思いますか? –

+1

cythonのドキュメントによると、 'build_ext'引数を使わなければなりません。これがあなたの問題なら、おそらく@Henry Gomersallの答えを受け入れるべきです。 –

答えて

4

実行python setup.py build_ext。それは私のために働く。

+0

ありがとう、私は正常に私のsetup.pyを実行することができたと思うが、まだ問題があった。最初にsetup.py build_extを実行したときにエラーが発生しました:error:C:\ Documents and Settings \ student \ hello.pyx:そのようなファイルやディレクトリはありません。この後、私はhello.pyxのコピーを学生に作り、もう一度それを走らせました。その後、私はbuild_extを実行しています。 cythoning hello.pyx to hello.c; 'hello'拡張機能をビルドします。 エラー:vcvarsall.batを見つけることができません。私は何とか私のCコンパイラをリンクする必要があると思うし、MinGwをダウンロードしましたが、私は何を変更する必要があるのか​​わかりません – enderx1x

+0

あなたのパスにmingwを追加する必要があります。私は実際にすべての私のWindowsのpythonの開発msysを使用して:http://www.mingw.org/wiki/MSYS、mingwと他の有用なUNIXツールの補完的なシェルです。それはWindowsが耐え難い経験になります!あなたは*あなたのWindowsパス変数にいくつかのpythonパスを追加する必要があるかもしれません(私は忘れてしまいます)。あなたのシェルフォントを悪いデフォルトから変更することを確かめてください!セットアップが完了したら、easy_installなどを使用するだけでなく、実際にはPythonアプリケーションを実行するのに最適です。 –

+0

私はmsysを試していませんが、私のパスにmingwを追加しました。再度実行した後、次のエラーが表示されます。C:¥MinGW¥bin¥gcc.exe -mno-cygwin -mdll -O -Wall -IC:¥Python32¥include -IC:¥Python32¥PC -c hello.c -oビルド\ temp.win32-3.2 \ Release \ hello.o; cc1.exe:エラー:認識できないコマンドラインオプション '-mno-cygwin'; エラー:コマンド 'gcc'が終了ステータス1で失敗しました。また、私はhello.pyxのコピーを学生に作る必要がないように方法があります。 – enderx1x

0

私はここで野生の推測をしています...しかし、私はあなたのディレクトリ名のスペースだと思います。私はちょうど2,3分のグーグルグーグルグーグルをグーグルグーグルグーグルで過ごした& Distutils私はあなたがWindowsでそれらを使用するときにディレクトリ名にスペースを使用しないことをお薦めしているのを思い出しているようです - しかし、私が探していたリンクを見つけることができませんでした。

クイックテストを試して、「cythonプログラム」を「cythonprograms」に名前を変更して何が起こるかを確認してください。

+0

うーん、私はパスが引用符で囲まれているので問題ではないと思うだろう...私は彼がスクリプトに何か引数を与えていないと思う。 –

+0

私は最初は同じことを考えましたが、引数なしで 'python setup.py'を実行するだけで、distutilsの標準的なヘルプが得られます...しかし例外はありません...そして彼はトレースバックを投稿しました – user590028

関連する問題