Pycharm遠端除錯

adison發表於2018-12-16

動機

  1. 一些bug由於本地環境和線上環境的不一致可能導致本地無法復現
  2. 本地依賴和線上依賴版本不一致也可以導致一些問題
  3. 有時一些bug跟資料相關,本地資料無法和線上資料一致
  4. 有些三方平臺會驗證伺服器的合法性或者非同步回撥結果,如微信支付,這時候本地無法測試

如上所訴,要是有一個很方便除錯遠端伺服器的方法,豈不美哉。通過PyCharm我們可以很方便地實現遠端除錯,下面詳細介紹下PyCharm這個牛叉的功能。

新增遠端部署

  1. 開啟pycharm,tools-->Deployment-->Configuration

Pycharm遠端除錯

  1. 點選左邊“+”新增遠端伺服器,隨便起個名字,選擇SFTP

Pycharm遠端除錯

  1. 配置connection

Pycharm遠端除錯

  1. 配置Mappings

    Pycharm遠端除錯

  2. 配置Excluded Paths(可選)

    Pycharm遠端除錯

最後點選OK即可

再次開啟部署選項,可以發現現在可以直接部署程式碼到伺服器了,也可以直接下載帶程式碼到本地,同時自動上傳(Automatic Upload)是預設勾選的,我一般會把它去掉,防止一些本地測試程式碼上傳上去

Pycharm遠端除錯

新增一個檔案,檢視deployment 選項,這時候就可以上傳到遠端伺服器了

Pycharm遠端除錯

新增遠端直譯器

遠端部署僅僅只是同步和拷貝檔案,要真正實現遠端除錯還需要配置遠端直譯器

  1. 設定頁面找到“Project Interpreter” --> 設定-->Add

Pycharm遠端除錯

  1. 選擇“SSH Interpreter” --> "Existing server configuration" --> 選擇剛才建立的部署配置,使用‘’Create“或者”Move“ 都OK

Pycharm遠端除錯

  1. 點選下一步,這時會進行連線遠端伺服器,稍等一會,會出現以下介面,稍微配置下,點選“Finish”即可

Pycharm遠端除錯

最後使用遠端直譯器,點選“OK”,返回到專案介面,等待同步完成即可

Pycharm遠端除錯

遠端除錯

這裡根據自己的具體專案情況而定,我這裡是Flask+阿里雲+nginx+執行指令碼的一個例子

  1. 新增一個 run configuration

Pycharm遠端除錯

Pycharm遠端除錯

Pycharm遠端除錯

  1. 執行指令碼程式碼如下,這裡使用了8000的埠

Host要配置為0.0.0.0

Pycharm遠端除錯

  1. nginx 配置8000 埠
    server {
        listen       8000 ;
        listen       [::]:8000 ;
        server_name  _;
        root         /usr/share/nginx/html;
        access_log  /var/log/nginx/access_8000.log  main;
        error_log  /var/log/nginx/error_8000.log;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        location / {
		proxy_pass http://127.0.0.1:8000;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
複製程式碼
  1. 要是使用阿里雲,還需要安全組開放8000 埠
  2. 斷點執行

Pycharm遠端除錯

Pycharm遠端除錯

  1. 出現上圖所示的時候,恭喜你,你已經可以斷點除錯遠端伺服器了

我們打一個斷點,然後試著訪問一個API服務:xx.xx.xx.xx:8000/api/pages/b…

完美斷上

Pycharm遠端除錯

補充說明

不建議在正式伺服器使用這個功能,可以在測試伺服器使用

相關文章