1

(Windows 10 では、 を含むものと、Canopy を指す . を含むものをインストールしました...\AppData\Local\Enthought\Canopy)Python 2.7...\AppData\Local\Programs\Python\Python35Python 3.5%PATH

このリンクこのリンクをたどって、「PyXLLで実行されているPythonコードにPyDevインタラクティブデバッガーを接続する」作業を行いたいです。

だから私は次のことをしました:

  1. eclipse_debug.pyフォルダ...\AppData\Local\Enthought\Canopy\User\Lib\site-packages\pyxll\examples\に保存され、pyxll.cfgインクルードされましたeclipse_debug.py

  2. に追加されましeclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc%PATH(echo %PATHこのパスは表示されますが、コマンド プロンプトにecho %PYTHONPATH%戻ります)%PYTHONPATH%

  3. 以前は Excel で機能import pydevd;pydevd.settrace()していた関数に追加されました ( do return )。hellohello("abc")Hello, abc

  4. ExcelでPyXllをリロードしました

しかし、その結果、

  1. hello機能が動作しなくなりました

  2. で約束された新しいメニュー項目がないThis module adds an Excel menu item to attach to the PyDev debugger, and also an Excel macro so that this script can be run outside of Excel and call PyXLL to attach to the PyDev debugger.ため、デバッグ方法がわかりません。

誰でも助けてもらえますか?

ここに画像の説明を入力

PS:コードを入力すると、やなどのパッケージとして自動的に提案されないpvdevdため、環境にうまく挿入されていないことが問題です。しかし、私はEclipseの制御または内部で本当に混乱しています。importpydevdnumpynumbersPYTHONPATHPATH

編集1:

PYTHONPATHWindows のコントロール パネルで に設定しました...eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc。その結果、echo %PYTHONPATH%コマンド プロンプトでこのパスが返されます。そして、pydevd日食で自動補完されます。

次のコードでは、 を使用せずeclipse_debug.py、 を起動しdebug serverた後、 の行の直後で実行が中断されsettraceます。

from pyxll import xl_func
@xl_func("string name: string")
def hello(name):
    import pydevd;pydevd.settrace()
    return "Hello, %s" % name

では、のやり方を踏襲したいと思いますeclipse_debug.py。私は次のことをしました:

1)Windowsのコントロールパネルで消去(パスを見つけるためPYTHONPATHに頼りたいので)eclipse_debug.py

2) eclipse_debug.pyの最初の行のみを に変更しますeclipse_roots = [r"C:\my_path_to\eclipse"]

eclipse_debug.py3)に追加pyxll.cfg

4) 次のコードを使用して関数を定義しますhello

from pyxll import xl_func
@xl_func("string name: string")
def hello(name):
    return "Hello, %s" % name

5) debug serverEclipse を起動し、Excel を起動して、PyXLL をリロードします。

ただし、hello機能は Excel で動作しますが、デバッグに関するメニュー項目は Excel に表示されません。私のアプローチに何か問題がありますか?

4

1 に答える 1

0

環境レベルでPYTHONPATHまたはを変更するのではなく、単純にPATHimport sys;sys.path.add(r'< full path to>eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc')import pydevd;pydevd.settrace()

したがって、次のようになります。

import sys
sys.path.add(r'< full path to>eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc')
import pydevd
pydevd.settrace()

関連する問題のいくつかに答えるには:

  • PATHPython (AFAIK) はPython モジュールを探しません。それがPYTHONPATH目的です。起動時に Python は+ その他の設定sys.pathの内容を設定します。PYTHONPATH
  • オートコンプリートしないのpydevdは、PyDev が に対して行った、または行う予定の変更を認識していないためですPYTHONPATH。インタープリターの設定を変更することで、PyDev に伝えることができます。
  • eclipse_debug.py、デバッガーへの接続を容易にすることを目的としています。eclipse_debug.pyメソッドまたは上記のメソッドを使用する必要があります。ただし、使用するeclipse_debug.py場合は、ファイルの先頭付近のパスを更新する必要があります。
于 2016-02-17T21:30:22.760 に答える