(在Windows 10中,我安装的...\AppData\Local\Enthought\Canopy
包含Python 2.7
,另一个...\AppData\Local\Programs\Python\Python35
包含Python 3.5
。%PATH
指向Canopy)
我想将PyDev交互式调试器附加到PyXLL"中运行的Python代码中。按照this link和this link进行工作。
所以我做了以下事情:
将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%
仍在命令提示符中返回%PYTHONPATH%
将import pydevd;pydevd.settrace()
添加到hello
函数中,该函数之前在Excel中有效(hello("abc")
确实返回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
等包1}}或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_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
但是,虽然hello
功能在Excel中有效,但Excel中不显示有关调试的菜单项。我的做法有问题吗?
答案 0 :(得分:0)
不要在环境级别修改PYTHONPATH
或PATH
,只需在import 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()
回答您的一些相关问题:
PATH
中查找python模块。这就是PYTHONPATH
的用途。在启动时,Python会将sys.path
设置为PYTHONPATH
+任何其他设置的内容。 pydevd
非自动完成的可能性很大,因为PyDev不了解您对PYTHONPATH
所做或打算做出的修改。您可以通过修改解释器设置来告诉PyDev。eclipse_debug.py
旨在简化与调试器的连接。您应该使用eclipse_debug.py
方法或上述方法。但是,如果使用eclipse_debug.py
,则必须更新文件顶部附近的路径。