簡體   English   中英

如何在PyCharm中進行遠程調試

[英]How to remote debug in PyCharm

我現在面臨的問題:

  • 我通過SSH在遠程主機上部署Python代碼
  • 腳本傳遞一些參數,必須由特定用戶運行
  • 我創建的PyCharm運行/調試配置通過SSH通過不同的用戶連接(無法與實際運行腳本的用戶連接)
  • 我想通過PyCharm遠程調試這段代碼......我設法做了所有配置,我只是得到權限錯誤。

有沒有什么方法可以作為特定用戶運行/調試腳本(如sudo su - user)?

我已經閱讀過在PyCharm的遠程/調試配置中指定一些Python Interpeter選項,但沒有設法獲得可行的解決方案。

如果您想要一種簡單且更靈活的方式進入PyCharm調試器,而不是必須在PyCharm中單擊“播放”按鈕,則可以使用調試服務器功能。 我已經在運行某些Python代碼並不像運行python ...那樣簡單的情況下使用了它。

有關更多詳細信息,請參閱使用Python調試服務器文檔進行遠程調試 ,但以下是其工作原理的概述:

  1. 在服務器上上傳並安裝遠程調試助手蛋(在OSX上,可在/Applications/PyCharm.app/Contents/debug-eggs下找到)
  2. 設置遠程調試服務器運行配置:單擊下拉運行配置菜單,選擇Edit configurations... ,點擊+按鈕,選擇Python remote debug
    • 這里輸入的詳細信息(有點令人困惑)告訴運行Python腳本的遠程服務器如何連接到筆記本電腦的PyCharm實例。
    • Local host name設置為筆記本電腦的IP地址
    • port設置為可在筆記本電腦上使用的任何空閑端口(例如8888
  3. 現在按照該對話框中的其余說明操作:將importpydevd.settrace(...)語句復制粘貼到您的代碼中,特別是您希望代碼“點擊斷點”的位置。 這基本上是import pdb; pdb.set_trace()的PyCharm等價物import pdb; pdb.set_trace() import pdb; pdb.set_trace() 確保更改的代碼與服務器同步。
  4. 點擊bug按鈕(播放旁邊;這將啟動PyCharm調試服務器),並像在正常情況下一樣運行Python腳本,無論用戶,環境等等。當斷點被擊中時,PyCharm應該進入調試模式。

我有這個(最后)使用ssh RemoteForward打開,如下所示:

ssh -R 5678:localhost:5678 user@<remotehost>

然后在此ssh會話中啟動腳本。 python腳本主機必須連接到localhost:5678,當然你的本地pycharm調試器必須監聽5678(或你選擇的任何端口)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM