2008-09-29 125 views
11

我有PyDev的Eclipse安裝程序,並且愛可以調試我的腳本/應用程序。我剛開始玩Pylons,想知道是否有辦法通過Eclipse啓動貼圖服務器,這樣我就可以調試我的Web應用程序了?通過Eclipse調試塔應用程序

回答

10

創建一個新的啓動配置(Python的運行)

主要選項卡

使用paster-script.py爲主要模塊(你可以在你的Python安裝目錄中的腳本子目錄中找到它)

不要忘記添加應用程序的根文件夾中的PYTHONPATH區

參數 也將基礎目錄設置爲根文件夾。

由於程序參數使用 「服務development.ini」(或任何你用它來調試應用程序「)

Common選項卡

入住背景分配控制檯和發射

2

yanjost有它是正確的,只是想補充一點,你需要確保你沒有使用--reload選項,這將阻止調試器正確附加自身並導致你的斷點無法工作,只是我碰到的一件小事

1

對於粘貼腳本可能是/ usr/bin/paster或/ usr/local/bin/paster的linux,以及我有的參數:serve $ {workspace_loc} $ {project_path} /development.ini

2

我能夠通過更改參數選項卡中的'工作目錄'來重新加載 - 不使用默認(即選擇'其他' - >文件系統 - >存儲development.ini的'你的Pylons的根目錄'應用程序。

1

我也得到了這個工作(最後)。我使用buildout而不是virtualenv來安裝掛架(說明:http://wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout),所以上面的說明需要稍微改變一點,直到路徑走。

- 對於「主模塊」,我用:

${workspace_loc:myeclipseprojectname/bin/paster} 

(添加--reload做斷點我不行,我測試了這幾次)

- 對於「程序參數」我用:

serve ${workspace_loc:myeclipseprojectname/mypylonsprojectname/development.ini} 

- 因爲 「工作目錄,其他:」 我用:

${workspace_loc:myeclipseprojectname/mypylonsprojectname} 

- 如上所述,在「常用選項卡」,「檢查分配控制檯並在後臺啓動」

- 並記得在嘗試之前設置斷點。

6

如果您不想在您的項目的工作空間Python安裝拿到貼紙,您可以創建一個純Python的驅動程序,如:

#!/usr/bin/env python 

from paste.script.serve import ServeCommand 

ServeCommand("serve").run(["development.ini"]) 

...和運行/調試,在Eclipse中。

注意:這是在沒有--reload選項的情況下運行的,因此您不會進行熱部署(即,您需要重新加載服務器以查看更改)。或者,您可以添加--reload選項以獲得熱部署,但是Pydev不會停在您的斷點處。不能有你的蛋糕和它也吃...

ServeCommand("serve").run(["--reload", "development.ini"]) 
+0

這也適用於金字塔應用程序。 – Seth 2011-12-22 00:09:49

0

這並不真正回答關於如何在eclipse中做的問題。但我一直在用winpdb調試paster服務器,這是一個很不錯的圖形化python調試器(你可以用easy_install winpdb來安裝它)。

剛開始你的服務器例如: -

winpdb /usr/local/bin/paster serve development.ini 

,然後單擊運行按鈕。

正如wayne所說,有必要不是使用--reload選項。至少我無法找到如何連接到實際的webapp,當選擇分叉進程調試器應該輸入(進入不同的進程可以用「fork parent」和「fork child」調試器命令來控制)。

+0

我還發現,在啓用repoze.profile的情況下,當使用winpdb運行paster時,確實會造成過深的遞歸。 – 2011-04-29 09:05:27