0

django チャネルと asgi を使用して単純なチャット サーバーを実行しようとしています。チャネルと daphne をインストールしましたが、開発サーバーを実行しようとすると、次のエラーが発生します。

Unhandled exception in thread started by <function wrapper at 0x1062fdc80>
Traceback (most recent call last):
  File "/Users/yash/code/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper
     fn(*args, **kwargs)
  File "/Users/yash/code/lib/python2.7/site-packages/channels/management/commands/runserver.py", line 63, in inner_run
     "layer": self.channel_layer,
  File "/Users/yash/code/lib/python2.7/site-packages/channels/asgi.py", line 86, in __str__
      return "%s (%s)" % (self.alias, name_that_thing(self.channel_layer))
  File "/Users/yash/code/lib/python2.7/site-packages/channels/utils.py", line     25, in name_that_thing
      return name_that_thing(thing.__class__)
  File "/Users/yash/code/lib/python2.7/site-packages/channels/utils.py", line     16, in name_that_thing
      if hasattr(thing, "__class__") and not isinstance(thing, (types.FunctionType, types.MethodType)):
  AttributeError: 'module' object has no attribute 'FunctionType'

最後のファイルをチェックアウトしたところ、エラーが types モジュールにあることがわかりました。行import typesは正常に機能しましたが、スクリプトが呼び出そtypes.FunctionTypeうとすると AttributeError が返されます。シェルにスクリプトをインポートすると、期待どおりに機能しました

どんな助けでも大歓迎です。:)

編集 print(types)出力: <module 'types' from '/usr/local/Cellar/python/2.7.12_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/types.pyc'>

EDIT 2 チャンネルを使用して別のdjangoプロジェクトを開始し、githubからリポジトリを複製しました。依存関係をインストールした後に開発サーバーを実行すると、完全に機能しました。チャネルの utils ファイルはまったく同じなので、これを説明する助けがあれば役立ちます。

4

1 に答える 1

0

他の StackOverflow の質問を閲覧していたところ、不適切な名前のファイルが原因でインポート エラーが発生するという Python スクリプトの一般的なバグが見つかりました。チャンネルのインストール ディレクトリを調べたところ、という名前のファイルが見つかり、types.pyこれを に変更するtyper.pyと、プログラムは正常に動作しました。助けてくれてありがとう。

于 2016-11-28T13:38:27.200 に答える