0

ツイストを使用しようとしていますが、ツイストパッケージで提供されているサンプルコードの一部を実行しようとすると、「python」ではなく「twistd」を使用すると常にクラッシュするようです。

たとえば、twistedで指定されたサンプルコードを使用して、コマンドを実行した場合:twisted -ny echoserv.py

未処理のエラー
トレースバック(最後の最後の呼び出し):
  ファイル"/usr/lib/python2.7/site-packages/twisted/application/app.py"、652行目、実行中
    runApp(config)
  runAppのファイル「/usr/lib/python2.7/site-packages/twisted/scripts/twistd.py」、23行目
    _SomeApplicationRunner(config).run()
  ファイル"/usr/lib/python2.7/site-packages/twisted/application/app.py"、行386、実行中
    self.application = self.createOrGetApplication()
  createOrGetApplicationのファイル"/usr/lib/python2.7/site-packages/twisted/application/app.py"、行451
    application = getApplication(self.config、passphrase)
--- ---
  getApplicationのファイル"/usr/lib/python2.7/site-packages/twisted/application/app.py"、行462
    アプリケーション=service.loadApplication(ファイル名、スタイル、パスフレーズ)
  loadApplicationのファイル"/usr/lib/python2.7/site-packages/twisted/application/service.py"、行405
    application = sob.loadValueFromFile(filename、'application'、passphrase)
  loadValueFromFileのファイル"/usr/lib/python2.7/site-packages/twisted/persisted/sob.py"、211行目
    値=d[変数]
exceptions.KeyError:'アプリケーション'

アプリケーションのロードに失敗しました:'アプリケーション'
ファイルに「アプリケーション」が見つかりませんでした。'twistd -y'を使用するには、.tac
ファイルは適切なオブジェクトを作成する必要があります(たとえば、service.Application()を呼び出すことによって)
'application'という名前の変数に保存します。ツイストは.tacファイルをロードします
そして、この名前の1つについてグローバル変数をスキャンします。

詳細については、「アプリケーションの使用」HOWTOをお読みください。


Twistedバージョン11.0.0を使用していましたが、12.0.0を試しましたが、同じ問題が発生します。

私が使用しているPythonのバージョンは2.7.2です

何をすべきかについてのアイデアは役に立ちます。私はこの問題に数日間対処しようとしています。ありがとう!

4

2 に答える 2

1

twistd -yという変数を含む python ファイルで使用することを意図していますがapplication、このファイルには何もないため、機能しません。

エコシステムにおけるその役割をより明確に理解できるように、twistdドキュメントを読むのに時間を費やすことをお勧めします。twisted

于 2012-03-10T20:30:11.623 に答える
0

「twistd -y」を使用するには、.tac ファイルで適切なオブジェクトを作成し (たとえば、service.Application() を呼び出して)、「application」という名前の変数に格納する必要があります。twistd は .tac ファイルをロードし、グローバル変数をスキャンしてこの名前の 1 つを探します。

詳しくは「アプリケーションの使い方」HOWTOをお読みください。

于 2012-03-10T22:41:08.270 に答える