0

これが私のindex.pyです(フォルダー/ NetWeave_Customにあります)

import web
import lib.html

web.config.debug = True

urls = (
    '/', 'index',
)

class index:
    def GET(self):
        markup = html.abstr()
        print markup.element

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

app = web.application(urls, globals(), autoreload=False)
application = app.wsgifunc()

そして、これが私のhtml.pyです(/ NetWeave_Custom/lib /にあります)

class abstr:
    element = 'Hello World';

ただし、500 内部サーバー エラーが発生します。誰が私が間違っているのか教えてもらえますか? 私は web.py フレームワークが初めてです。ありがとう!

編集:

上記のコードでエラーが発生します: ImportError: lib.html という名前のモジュールはありません

最終編集:

作業コードは次のようになります。

import web
from lib import html

web.config.debug = True

urls = (
    '/', 'index',
)

class index:
    def GET(self):
        markup = html.abstr()
        return markup.element

if __name__ == "__main__":
    app = web.application(urls, globals(), autoreload=False)
    app.run()

application = app.wsgifunc()

そして、これが私のhtml.pyです(/ NetWeave_Custom/lib /にあります)

class abstr:
    element = 'Hello World';

ブラウザには次のように表示されます: 'Hello World' したがって、変更は app を呼び出す前に定義し (実際には関係ありませんが、厳密には必要です。これがなくても問題なく動作しました)、表示するのではなく markup.element を返し、私が理解しているように、 lib__init__.pyはモジュール(またはパッケージ?)として表示されます。

ありがとう!

4

2 に答える 2

1

をインポートlib.htmlしますが、そのフルネームは使用しません。代わりに、 のみを参照してくださいhtml

インポート エラーが発生した場合は、libパッケージが見つかりません。次の 2 つのいずれかが間違っている可能性があります。

  • 代わりに使用する必要がありimport htmlます。これにより、誤った参照も解決されます。

  • libディレクトリに__init__.pyファイルがありません (空の可能性があります) 。そのファイルはパッケージになり、インポートできるようになります。次に、への参照を次のように変更しhtmlますlib.html

    class index:
        def GET(self):
            markup = lib.html.abstr()
            print markup.element
    

    またはインポートを次のように変更します。

    from lib import html
    

appまた、定義される前に実行しようとします。最後の行を次のように変更します。

if __name__ == "__main__":
    app = web.application(urls, globals(), autoreload=False)
    app.run()

NetWeave_Custom最後に、ディレクトリ (絶対パス) をPYTHONPATH;に追加する必要があります。使用している場合は、ディレクティブをmod_wsgi見てください。WSGIPythonPath

于 2012-12-27T17:21:06.000 に答える
0

答えは2つありました。__init__.pylibサブディレクトリにファイルがありませんでした。もう1つのエラーは、私が書いたものprintであり、そうではなかったということでしたreturn markup.element... Doh!

于 2012-12-28T20:45:06.097 に答える