一分鍾搞定pychram遠程調試和同步代碼


首先說一下需求,否則很多人都不知道pycharm這個遠程同步和調試到底是干嘛使的。

需求很簡單,我想要在本地的windows機器上跑一個程序,但是程序運行會加載一些很占內存的樹型數據結構,稱其為tree;這些tree的大小有20G,需要全部加載到內存當中才能夠使的程序跑起來,這下完了,我的計算機配置內存才8G,如果tree都加載到內存中肯定會爆掉。因為公司服務器的內存為90G,所以完全可以用其來加載tree。但是其中一個問題是我可以將代碼傳送到公司服務器上,然后在其上面跑,但是一旦我需要修改代碼或者調試代碼時候就顯得無能為力了,因為服務器沒有裝pycharm,也沒有裝可視化的桌面環境。所以如果我能在windows的pycharm能夠對linux上的程序進行調試,並且windosw端一旦修改代碼還可以同步到linux上,這樣就很完美了。正好pycharm本身就有這個功能,為的就是方便大家在linux上開發程序。接下來我將用非常簡短的步驟來實現上面的需求,我在看上面參考網址中其他的人寫的教程時候感覺都很麻煩,啰里啰嗦,而且邏輯混亂。本來很簡單的步驟,弄得復雜無比,坑人!!!

這里我再稍微啰嗦一下pycharm的遠程調試原理,其實很簡單,我們的python運行是依賴解釋器的,解釋器包編譯器和虛擬機,為了理解簡單起見,可以直接將解釋器理解為一個可以將我們寫的代碼轉換為cpu可以識別的二進制代碼,並可以將這些二進制代碼運行的東東。pycharm其實是可以選擇不同的解釋器的,默認情況下是選擇本地安裝的解釋器,但是如果我們給pychram配置了一個服務器端的解釋器,並將本地的代碼和服務器端的代碼做了一個映射后,那么pycharm就可以加載服務器端的解釋器來運行服務器端的代碼,這樣就相當於在本地的pycahrm上看到服務器端的程序運行情況,即遠程調試目的就達到了;

1、准備工作,本地為windows7系統,pycharm為專業版,社區版是沒有遠程調試的功能的。服務器為centos系統(我們暫且稱其為z服務器),首先我需要先獲取服務器端python解釋器所在的路徑:

首先進入服務器的python,然后運行:

[root@localhost mnt]# python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.executable
'/home/mnt/anaconda3/bin/python'
>>> 

可以看到k服務器上的python解釋器的路徑為:/home/mnt/anaconda3/bin/python

接下來直接配置遠程的解釋器:

file-setting-project,然后點擊interpreter,然后點擊右上角的齒輪圖標后,會顯示Add,

點擊Add會跳出如下界面:選擇SSH 解釋器這一欄,然后配置服務器端的ip,用戶名,密碼即可;

點擊確定后,需要將上面服務器端的python解釋器路徑輸入其中,然后還需要配置Sync folders,這個路徑就是本機的代碼文件夾和服務器端的代碼文件夾,要對應好。另外對於Automacitally upload那個不要勾選。

到此其實整個環境就配置完成了。

接下來我們只需將本地代碼上傳到服務器端即可:

這里我們如果想上傳new這個文件夾,需要在projecet這個欄位中右鍵,然后點擊 Deployment upload to選擇上傳的服務器即可,這樣就將代碼上傳到上面配置的路徑中了;

如果我們想要調試代碼,則還在編譯器那一欄選擇 服務器端的編譯器,然后確定即可。接下來就按照本地的調試代碼方法調試即可。

下面我總結一下可能遇到的問題:

有的時候解釋器配置好了,但是pycharm右下角會有一個 event log,點擊之后會發現

Cant get remote credentials for deployment server root @192.000.000.00 的提示:

這個報錯提示是沒有獲取遠程開發環境的許可,需重新再次配置一下:

首先 file-setting,點擊紅色區域按鈕,

選擇show all

選擇當前解釋器:

點擊紅色區域小筆頭重新進行配置:

首先我們看到 紅色區域中填寫的配置信息是正常的,接下來我們看一下 SSH Credentials這一欄:

發現是空的,所以我們要將其進行重新填寫一下,即可;

此外還要注意一點:如果我想要同步本地的文件夾 file下的所有文件到服務器端,首先應該先在服務器端建立一個file文件夾,然后本地工程中右擊 file文件夾上傳到服務器端的file文件夾下即可,同步是不會在服務器端新建一個當前同步的文件夾的,必須手動在服務器端建立一個相同名字的文件夾才行!!!

參考網址:

https://www.cnblogs.com/Alier/p/8536123.html Pycharm遠程連接服務器,並在本地調試服務器代碼

https://blog.csdn.net/five3/article/details/78615589 Pycharm配置遠程調試

https://zhuanlan.zhihu.com/p/36843200 PyCharm遠程調試代碼(有點過時了)

https://juejin.im/post/5b08dae651882538b978dcb3 Python遠程調試圖文教程(一)之Pycharm Remote Debug(內容很多)

https://blog.csdn.net/qq_24193303/article/details/80902322 機器學習中 如何使用 Pycharm 將代碼上傳到遠程服務器上 側重代碼上傳


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM