(在Windows 10中,我已经安装了包含...\AppData\Local\Enthought\Canopy的Python 2.7和另一个包含Python 3.5的...\AppData\Local\Programs\Python\Python35。%PATH指向冠层)
我想让“将PyDev交互式调试器附加到运行在PyXLL中的Python代码”通过跟随此链接和此链接来工作。
因此,我做了以下工作:
eclipse_debug.py保存在...\AppData\Local\Enthought\Canopy\User\Lib\site-packages\pyxll\examples\文件夹中,并使pyxll.cfg包含eclipse_debug.pyeclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc添加到%PATH (echo %PATH确实显示了这个路径,而echo %PYTHONPATH%仍然在命令提示符中返回%PYTHONPATH% )import pydevd;pydevd.settrace()添加到以前在Excel中工作的hello函数(hello("abc")确实返回了Hello, abc)。但是,结果呢,
hello函数不再工作了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没有很好地插入到环境中,因为当我在代码中输入import时,pydevd并不会自动被建议为包,比如numpy或numbers。但我真的很困惑于在Eclipse中控制PYTHONPATH或PATH。
编辑1:
我已经在PYTHONPATH的控制面板中设置为...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)只将debug.py的第一行修改为eclipse_roots = [r"C:\my_path_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" % name5)启动debug server of eclipse,然后启动PyXLL,然后重新加载PyXLL
但是,虽然hello函数在Excel中工作,但在Excel中没有出现有关调试的菜单项。我的方法有什么问题吗?
发布于 2016-02-17 21:30:22
与其在环境级别上修改PYTHONPATH或PATH,不如在import pydevd;pydevd.settrace()之上执行import sys;sys.path.add(r'< full path to>eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc')
所以你最终应该:
import sys
sys.path.add(r'< full path to>eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc')
import pydevd
pydevd.settrace()要回答您的一些相关问题:
PATH中查找python模块。这就是PYTHONPATH的作用所在。在启动时,Python将sys.path设置为PYTHONPATH +任何其他设置的内容。pydevd不自动完成最有可能是因为您PyDev不知道您对PYTHONPATH所做或打算做的修改。您可以通过修改解释器设置来告诉PyDev。eclipse_debug.py旨在简化与调试器的连接。您应该使用eclipse_debug.py方法或上面的方法。但是,如果使用eclipse_debug.py,则必须更新文件顶部附近的路径。https://stackoverflow.com/questions/35460931
复制相似问题