将 PyDev 交互式调试器附加到 PyXLL 中的 Python 代码 运行
Attach the PyDev interactive debugger to Python code running in PyXLL
(在 Windows 10 中,我安装了包含 Python 2.7
的 ...\AppData\Local\Enthought\Canopy
,以及包含 Python 3.5
的另一个 ...\AppData\Local\Programs\Python\Python35
。%PATH
指向 Canopy)
我想通过关注 this link and this link 让 "attaching the PyDev interactive debugger to Python code running in PyXLL" 工作。
所以我做了以下事情:
将 eclipse_debug.py
保存在文件夹 ...\AppData\Local\Enthought\Canopy\User\Lib\site-packages\pyxll\examples\
中,并使 pyxll.cfg
包含 eclipse_debug.py
将 eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc
添加到 %PATH
(echo %PATH
确实显示了这条路径,而 echo %PYTHONPATH%
仍然 returns %PYTHONPATH%
在命令提示符下)
将 import pydevd;pydevd.settrace()
添加到 hello
函数,该函数之前在 Excel 中起作用(hello("abc")
做了 return Hello, abc
).
在 Excel
中重新加载了 PyXll
然而,结果,
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:
我在Windows的控制面板中设置PYTHONPATH
为...eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc
。结果,echo %PYTHONPATH%
在命令提示符中仍然 return 这条路径。 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_debug.py
的方式。我做了以下事情:
1)在Windows的控制面板中擦除PYTHONPATH
(所以,我想靠eclipse_debug.py
找到路径)
2) 只修改eclipse_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" % name
5) 启动eclipse debug server
,然后启动Excel,然后重新加载PyXLL
然而,Excel 中没有出现有关调试的菜单项,尽管 hello
功能在 Excel 中有效。我的方法有问题吗?
无需在环境级别修改 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()
回答您的一些相关问题:
- Python (AFAIK) 不会在
PATH
中查找 python 模块。这就是 PYTHONPATH
的用途。在启动时 Python 会将 sys.path
设置为 PYTHONPATH
的内容 + 任何其他设置。
pydevd
没有自动完成很可能是因为您的 PyDev 不知道您对 PYTHONPATH
所做的或打算进行的修改。你可以通过修改解释器设置来告诉 PyDev。
-
eclipse_debug.py
旨在简化与调试器的连接。您应该使用 eclipse_debug.py
方法或上述方法。但是,如果您使用 eclipse_debug.py
,则必须更新文件顶部附近的路径。
(在 Windows 10 中,我安装了包含 Python 2.7
的 ...\AppData\Local\Enthought\Canopy
,以及包含 Python 3.5
的另一个 ...\AppData\Local\Programs\Python\Python35
。%PATH
指向 Canopy)
我想通过关注 this link and this link 让 "attaching the PyDev interactive debugger to Python code running in PyXLL" 工作。
所以我做了以下事情:
将
eclipse_debug.py
保存在文件夹...\AppData\Local\Enthought\Canopy\User\Lib\site-packages\pyxll\examples\
中,并使pyxll.cfg
包含eclipse_debug.py
将
eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc
添加到%PATH
(echo %PATH
确实显示了这条路径,而echo %PYTHONPATH%
仍然 returns%PYTHONPATH%
在命令提示符下)将
import pydevd;pydevd.settrace()
添加到hello
函数,该函数之前在 Excel 中起作用(hello("abc")
做了 returnHello, abc
).在 Excel
中重新加载了 PyXll
然而,结果,
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:
我在Windows的控制面板中设置PYTHONPATH
为...eclipse/plugins/org.python.pydev_4.5.4.201601292234/pysrc
。结果,echo %PYTHONPATH%
在命令提示符中仍然 return 这条路径。 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_debug.py
的方式。我做了以下事情:
1)在Windows的控制面板中擦除PYTHONPATH
(所以,我想靠eclipse_debug.py
找到路径)
2) 只修改eclipse_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" % name
5) 启动eclipse debug server
,然后启动Excel,然后重新加载PyXLL
然而,Excel 中没有出现有关调试的菜单项,尽管 hello
功能在 Excel 中有效。我的方法有问题吗?
无需在环境级别修改 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()
回答您的一些相关问题:
- Python (AFAIK) 不会在
PATH
中查找 python 模块。这就是PYTHONPATH
的用途。在启动时 Python 会将sys.path
设置为PYTHONPATH
的内容 + 任何其他设置。 pydevd
没有自动完成很可能是因为您的 PyDev 不知道您对PYTHONPATH
所做的或打算进行的修改。你可以通过修改解释器设置来告诉 PyDev。-
eclipse_debug.py
旨在简化与调试器的连接。您应该使用eclipse_debug.py
方法或上述方法。但是,如果您使用eclipse_debug.py
,则必须更新文件顶部附近的路径。