0

Chameleon の template.py ファイルにはcook(self, body)関数があり、この行の実行中に問題が発生します。

program = self._cook(body, digest, names)

_cook(self, body, digest, buildins)そして、これは機能とラインにつながります

source = self._make(body, buildins)

私は PyCharm を使用しており、2 つの python2.7 インタープリターを持っています。ピラミッドプログラムを実行するだけで、どちらも機能します。また、デバッグ モードで実行すると、どちらも pydev デバッガーに接続できます。ただし、そのうちの 1 つ (「悪い」インタープリター) では、デバッグ モードで要求を処理するときに次のエラーが発生します。

ImportError: cannot import name pydev_debugger_exc_info

さらに掘り下げてみたところ、「良い」インタープリターを使用すると、テンプレートの.ptファイルが.py一時ファイル/オブジェクト(ソース)にクックされ、開始行が次のようになることがわかりました

from sys import exc_info as _exc_info

これはうまく機能します。「悪い」インタープリターは、最初の行として次のようになります。

from _pydev_imps._pydev_sys_patch import pydev_debugger_exc_info as _pydev_debugger_exc_info

他のバージョンの pramid/chameleon なども使用しようとしましたが、同じ問題が発生しました。異なる動作は、2 つの異なる Python 2.7 インタープリターによって引き起こされることを知っています。しかし、私はそれ以上掘り下げる方法が本当にわかりません。ですから、どんな助けやアドバイスも大歓迎です。

4

1 に答える 1

0

私はこの質問を十分に待っていたと思います。そこで、この問題を回避するためのいくつかのメソッドを作成することにしました。この質問は「カメレオン」という単語で始まりますが、これは「原因」ではなく「症状」にすぎないと思います。繰り返しますが、原因はあなたの環境にあります。だから私がしたことは、別の環境を作成し、別のインタープリターを使用することです。ここで重要なのは、pycharm から setup.py を実行する代わりに、コマンド ラインを使用して setup.py (develop) を実行することです。関連する問題をいくつか見つけ、いくつかの方法を試しました。そのうちの 1 つは、一度は役に立ちましたが、常に機能するとは限りませんでした。以下はリンクです。Pydev デバッガー

于 2015-09-29T18:13:02.543 に答える