2011-06-20 22 views
6

私はweb.pyを使用するには、小さなhelloworldのサイトを書くが、私はpython code.pyを実行すると、私はエラーメッセージが表示されます:ここでWeb.py - はAttributeError:「モジュール」オブジェクトが属性「アプリケーション」を持っていない

Traceback (most recent call last): File "E:\Python25\webpy\web\mysite.py", line 1, in <module> 
    import web File "E:\Python25\webpy\web\web.py", line 4, in <module> 
    app = web.application(urls, globals()) AttributeError: 'module' object has no attribute 'application' 

は私ですコード(web.pyのチュートリアルから貼り付け):

import web 

urls = ('/','Index', 
) 

class Index: 
    def GET(self): 
    return "Hello,world!" 

app=web.application(urls,globals()) 

if __name__=="__main__": 
    app.run(

PS:web.pyのバージョンは0.35です。

答えて

9

名前の衝突が発生しています。パッケージWebに名前を付けて、モジュールWebをインポートしようとしています。

これはパッケージ内にあると仮定していますか?

\webpy\web\mysite.py

あなたがimport webを行うときに、あなたがあなたパッケージではありません、実際のweb.py.をインポートする場合名前を変更するか、pythonパスを並べ替えます。

+0

あなたのWebモジュールがWeb.pyと競合していたことを意味しますが、Web.py :( – Xhinking

+0

)\ web \ webに\ _ \ _ init \ _ \ _。pyがありますか? – Nix

+0

はい、私はwebpy \ webで__init__.pyを持っています – Xhinking

1

これは私の場合で働いていた:app.yamlをファイルには、このための

- url: /.* 
    script: test.application 

を置き換える、

- url: /.* 
    script: test.app 

これは、名前の競合を解決します。上記のユーザーからの推薦パー

1

、私はその視認性を向上させるの答えに私のコメントを有効にしている:

あなたが最初にあなたも、むしろPythonのチュートリアルのようcode.pyよりも、あなたのファイルweb.pyを呼び出すことによって可能性が開始した場合あなたがコーディングしているフォルダにweb.pyc "バイトコード"ファイルが作成されている。名前の衝突を検出したら、web.pycファイルも削除してください。

関連する問題