在PyDev中运行Twisted应用程序
我想用Eclipse(3.5.2)里的PyDev模块(1.6.4)和Python(2.6.5)来调试一个Twisted应用程序(10.0.0)。如果我从命令行运行这个应用程序,我会这样写:
c:\python26\python c:\python26\scripts\twistd.py -ny mytwistedapp.py
为了在PyDev中做到这一点,我创建了一个新的PyDev项目,并导入了mytwistedapp.py和twistd.py。在项目的运行配置中,我把c:\python26\scripts\twistd.py指定为主模块。如果我选择运行 -> 调试配置,它会运行twistd.py,但没有参数(这算是快完成了,对吧?)。如果我尝试在运行配置中添加程序参数(-ny mytwistedapp.py),这些参数却被PyDev调试器处理,而不是传给twistd.py。这里有两个问题:
- 把twistd.py指定为主模块,这样做对吗?
- 如果对,那我该怎么把twistd.py需要的参数传给它,以便运行mytwistedapp.py(-ny mytwistedapp.py)?
1 个回答
3
首先,非常感谢大家在这个问题上的热心支持!
要通过Eclipse的PyDev模块运行一个twisted应用,关键是要把twistd.py设置为运行配置中的主模块。可以按照以下步骤操作:
这些步骤假设你已经可以在你的系统上运行twisted应用,也就是说你已经安装了zope和twisted。比如,以下命令应该已经可以正常工作:
python twistd.py mytwistapp.tac
这些步骤还假设你已经在Eclipse中安装并配置了PyDev,包括设置PYTHONPATH。
- 打开窗口,依次选择“窗口” -> “首选项” -> “PyDev” -> “解释器(Python)”
- 在“库”标签下(系统PYTHONPATH),系统库应该已经包含你的Python安装位置(例如,c:\python26, c:\python26\dlls\, c:\python26\lib等)。
- 将Zope的egg文件和Twisted文件夹添加到系统库中。例如,c:\python26\lib\site-packages\twisted和c:\python26\lib\site-packages\zope.interfaces-3.6.1-py2.6-win32.egg
接下来,创建一个新的PyDev项目。
- 创建一个新的PyDev项目(例如,MYPROJ)
- 导入你的各种twisted应用文件
- * 将twistd.py添加到你的项目中 *。我没有将文件的副本添加到我的项目中,而是链接到现有的文件(文件 -> 新建 -> 文件 -> 高级 -> “链接到文件系统中的文件” -> c:\python26\scripts\twistd.py)。这一步很重要,因为你将使用twistd.py在Eclipse中运行你的应用。
现在你的项目已经设置好了,接下来创建一个新的运行配置。
- 选择“运行” -> “运行配置”
- 在“主”标签下使用以下值:
- 名称:Twisted(或者你想要的名字)
- 项目:MYPROJ
- 主模块:${workspace_loc:MYPROJ/twistd.py}
- 在“参数”标签下使用以下值:
- 程序参数:-ny ${workspace_loc:MYPROJ/mytwistapp.tac}
就这样!关键是将twistd.py导入为主模块,这样程序参数就可以像在命令行中一样传递给twistd.py。