Eclipse 将PyDev交互式调试器附加到在PyXLL中运行的Python代码

Eclipse 将PyDev交互式调试器附加到在PyXLL中运行的Python代码,eclipse,pydev,canopy,pythonpath,pyxll,Eclipse,Pydev,Canopy,Pythonpath,Pyxll,(在Windows 10中,我安装了..\AppData\Local\Enthught\Canopy,其中包括Python2.7,以及另一个..\AppData\Local\Programs\Python35,其中包括Python3.5%PATH指向Canopy) 我想通过以下和使“将PyDev交互式调试器附加到在PyXLL中运行的Python代码”起作用 因此,我做了以下工作: 将eclipse\u debug.py保存在文件夹..\AppData\Local\enthund\Canopy\U

(在Windows 10中,我安装了
..\AppData\Local\Enthught\Canopy
,其中包括
Python2.7
,以及另一个
..\AppData\Local\Programs\Python35
,其中包括
Python3.5
%PATH
指向Canopy)

我想通过以下和使“将PyDev交互式调试器附加到在PyXLL中运行的Python代码”起作用

因此,我做了以下工作:

  • eclipse\u debug.py
    保存在文件夹
    ..\AppData\Local\enthund\Canopy\User\Lib\site packages\pyxll\examples\
    中,并使
    pyxll.cfg
    包含
    eclipse\u debug.py

  • eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc
    添加到
    %PATH
    echo%PATH
    确实显示此路径,而
    echo%PYTHONPATH%
    仍在命令提示符下返回
    %PYTHONPATH%

  • 新增
    导入pydevd;pydevd.settrace()
    hello
    函数,该函数以前在Excel中工作(
    hello(“abc”)
    确实返回了
    hello,abc

  • 在Excel中重新加载PyXll

  • 但是结果呢,

  • hello
    功能不再工作

  • 没有承诺的新菜单项此模块添加了一个Excel菜单项以附加到PyDev调试器,还添加了一个Excel宏,以便此脚本可以在Excel之外运行并调用PyXLL以附加到PyDev调试器。
    因此,我不知道如何调试

  • 有人能帮忙吗

    PS:我的问题是,
    pvdevd
    没有很好地插入到环境中,因为当我在代码中键入
    import
    时,
    pydevd
    不会自动建议作为包,例如
    numpy
    numbers
    。但是我真的很困惑于在Eclipse中控制
    PYTHONPATH
    PATH

    编辑1:

    我已将Windows控制面板中的
    PYTHONPATH
    设置为
    …eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc
    。因此,
    echo%PYTHONPATH%
    仍然在命令提示符下返回此路径。并且
    pydevd
    在eclipse中自动完成

    使用以下代码,不使用
    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\u debug.py
    的方法。我已经做了以下工作:

    1) 擦除Windows控制面板中的
    PYTHONPATH
    (因此,我想依靠
    eclipse\u debug.py
    找到路径)

    2) 只修改第一行tobe
    eclipse\u root=[r“C:\my\u path\u to\eclipse”]

    3) 将eclipse_debug.py添加到
    pyxll.cfg

    4) 使用以下代码定义函数
    hello

    from pyxll import xl_func
    @xl_func("string name: string")
    def hello(name):
        return "Hello, %s" % name
    
    5) 启动eclipse的调试服务器,然后启动Excel,然后重新加载PyXLL


    但是,尽管Excel中的
    hello
    函数可以正常工作,但Excel中不会显示关于调试的菜单项。我的方法有什么问题吗?

    与其在环境级别修改
    PYTHONPATH
    路径,不如简单地执行
    导入系统;sys.path.add(r'eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc')
    位于导入pydevd上方;pydevd.settrace()

    因此,您应该以以下方式结束:

    导入系统 sys.path.add(r'eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc') 进口pydevd pydevd.settrace() 要回答一些相关问题,请执行以下操作:

    • Python(AFAIK)从不在
      PATH
      中查找Python模块。这就是为什么。在启动时,Python会将
      sys.path
      设置为
      PYTHONPATH
      +任何其他设置的内容
    • pydevd
      没有自动完成很可能是因为PyDev不知道您对
      PYTHONPATH
      所做的或打算做的修改。您可以通过修改解释器设置来告诉PyDev
    • 用于简化与调试器的连接。您应该使用
      eclipse\u debug.py
      方法或上述方法。但是,如果使用
      eclipse\u debug.py
      ,则必须更新文件顶部附近的路径
    而不是在环境级别修改
    PYTHONPATH
    路径
    ,只需执行
    导入系统;sys.path.add(r'eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc')
    位于导入pydevd上方;pydevd.settrace()

    因此,您应该以以下方式结束:

    导入系统 sys.path.add(r'eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc') 进口pydevd pydevd.settrace() 要回答一些相关问题,请执行以下操作:

    • Python(AFAIK)从不在
      PATH
      中查找Python模块。这就是为什么。在启动时,Python会将
      sys.path
      设置为
      PYTHONPATH
      +任何其他设置的内容
    • pydevd
      没有自动完成很可能是因为PyDev不知道您对
      PYTHONPATH
      所做的或打算做的修改。您可以通过修改解释器设置来告诉PyDev
    • 用于简化与调试器的连接。您应该使用
      eclipse\u debug.py
      方法或上述方法。但是,如果使用
      eclipse\u debug.py
      ,则必须更新文件顶部附近的路径
    非常感谢。我没有使用eclipse_debug.pywork制作这个版本。然而,当我添加到OP中时,使用
    eclipse\u debug.py
    仍然不适合我。你能帮忙吗?你真的应该问另一个问题,而不是不合格的问题