0

私は非常に奇妙な問題を抱えています。このスクリプトを Linux コマンド ラインから実行するとpython scriptname.py、すべて正常に動作します。ブラウザからリクエストすると、内部エラー 500 が表示されます

実行中のスクリプトと同じディレクトリにあるスクリプト trainstate.py をインポートしています。__init__.pyディレクトリに777権限の空のファイルも配置しました

注: 標準のインポートを行うスクリプト (例: import os) は、ブラウザー経由で正常に動作します。

from trainstate import *

print "Content-Type: text/html\n\n"

st = TrainState(784)
print st.get_state()

私は何を間違っていますか?

4

2 に答える 2

1

実行中のスクリプトと同じディレクトリにあるスクリプト trainstate.py をインポートしています

これは、このディレクトリが Web サーバー プロセスの現在の作業ディレクトリであること、このプロセスの sys.path にあることを意味するものではありません。thkang はすでに可能な限り最良の回答を提供しています (逆の順序で言う必要があります) が、とにかく、代わりにこのコードを試して、何が得られるかを確認してください。

import sys, os
print "Content-Type: text/html\n\n"

print "sys.path is : ", ", ".join(sys.path)
print "current working directory is : ", os.getcwd()

try: 
    # star imports are evil
    from trainstate import TrainState
except Exception, e:
    print "failed to import TrainState : %s" % e
else: 
    st = TrainState(784)
    print st.get_state()
于 2013-04-29T18:32:31.720 に答える