使用pycharm 專業(yè)版, 在設(shè)置解釋器中,具備ssh 解釋器功能;
一般在本地?zé)o法調(diào)試遠(yuǎn)程端代碼,機(jī)械性的scp傳輸文件十分影響工作效率,PyCharm的Pro支持遠(yuǎn)程Run,Debug,等可視化的功能。
- 操作系統(tǒng):本地MacOS,遠(yuǎn)程Linux (本地3個(gè)操作系統(tǒng)都是支持的,遠(yuǎn)程Linux比較穩(wěn)定)
- IDE: 最新版本 PyCharm Pro (不支持社區(qū)版)
- python虛擬環(huán)境:Anaconda,pip,virtualenv
1. 遠(yuǎn)程服務(wù)器上的環(huán)境配置
在使用本地的pycharm 遠(yuǎn)程 服務(wù)器上的pycharm ,
需要獲取服務(wù)器上的如下信息;
- 服務(wù)器上的項(xiàng)目路徑,需要將數(shù)據(jù)集提前準(zhǔn)備好放在服務(wù)器上;
- 遠(yuǎn)程調(diào)試時(shí),需要用到服務(wù)器中的環(huán)境路徑, 指定到虛擬環(huán)境中的python 路徑下面;
- 服務(wù)器端的用戶名,ip 地址, port 端口;
1.1 服務(wù)器信息
從服務(wù)器上獲取如下信息;
1. project path: pwd
/home/yons/Documents/python_proj/02_patch-mix_contrastive_learning/patch-mix_contrastive_learning-main
2. conda python environments path:
/home/yons/anaconda3/envs/torch2.1.0/bin/python3.8
3. Username: whoami
yons
4. ip, ifconfig
inet 192.168.xx.xx
5. port: use default
22
1.2 遠(yuǎn)程環(huán)境的配置
在服務(wù)器上, 需要檢查三件事情,
1.2.1 ufw 已經(jīng)啟用
sudo ufw enable
檢查狀態(tài):
要驗(yàn)證 SSH 規(guī)則是否已添加并且防火墻是否處于活動(dòng)狀態(tài),請(qǐng)運(yùn)行
sudo ufw status
1.2.2. 允許 端口22 進(jìn)行通信
·注意, 盡量不要使用默認(rèn)端口
,
因?yàn)楹诳?知道常用默認(rèn)端口的 作用, 會(huì)使用端口掃描工具, 各個(gè)網(wǎng)段下的默認(rèn)端口,
進(jìn)而攻擊 服務(wù)器;
個(gè)人的服務(wù)器11.18 號(hào), 被攻擊了,并且被攻擊之后,
只要一上網(wǎng), cpu 所有的核 就會(huì)被滿負(fù)荷占滿, 估計(jì)運(yùn)算資源被占用。
所以修改自己的應(yīng)用服務(wù)對(duì)應(yīng)的端口,
比如其他端口, 比如改成4000, 黑客掃描后不至于一下猜到這是什么協(xié)議,用于什么應(yīng)用;
使用端口 22, 是因?yàn)榕渲胮ycharm 中 端口默認(rèn)的是22;
允許 SSH(端口 22):
現(xiàn)在 UFW 已啟用,應(yīng)該允許默認(rèn)端口 22 上的 SSH 流量。使用以下命令:
sudo ufw allow 22/tcp
1.2.3. ssh 服務(wù)已經(jīng)啟動(dòng)
檢查 SSH 服務(wù)狀態(tài):
確保 SSH 服務(wù)正在遠(yuǎn)程服務(wù)器上運(yùn)行。您可以使用以下命令檢查其狀態(tài)
sudo systemctl status ssh
如果該服務(wù)未運(yùn)行,請(qǐng)使用以下命令啟動(dòng)它:
sudo systemctl start ssh
- 如果出現(xiàn): unit ssh.service could not be found
列出名稱中包含“ssh”的所有服務(wù)單元,可以使用以下命令:
systemctl list-units | grep ssh
如果沒(méi)有輸出的話,
要確定是否安裝了 SSH,您可以使用特定于您的 Linux 發(fā)行版的包管理工具。
dpkg -l | grep openssh-server
如果未安裝 SSH 服務(wù)器,您應(yīng)該使用包管理器安裝它。
例如,在 Ubuntu 上,您可以使用以下命令安裝它:
sudo apt update
sudo apt install openssh-server
確保 SSH 服務(wù)確實(shí)已安裝并在您的 Ubuntu 20.04 系統(tǒng)上正常運(yùn)行。
sudo systemctl status ssh.service
如果服務(wù)正在運(yùn)行,您應(yīng)該會(huì)看到其狀態(tài)并處于活動(dòng)狀態(tài)(正在運(yùn)行)。
將 systemctl 與服務(wù)名稱或別名一起使用時(shí),使用完整的服務(wù)名稱非常重要,在本例中為 ssh.service 。使用別名可能無(wú)法按預(yù)期工作。
sudo systemctl start ssh.service
1.3 新建或打開(kāi)項(xiàng)目
首先在遠(yuǎn)程服務(wù)器上新建或者打開(kāi)一個(gè)項(xiàng)目文件,
注意該項(xiàng)目文件后期會(huì)與本地的項(xiàng)目文件進(jìn)行同步
,
python虛擬環(huán)境可以使用之前的,或者自己新建一個(gè)。
這里需要記錄下項(xiàng)目的路徑,以及conda的python路徑,在Linux系統(tǒng)下anaconda的虛擬環(huán)境一般會(huì)在當(dāng)前用戶目錄下,例如:
/home/USER/.conda/envs/YOUR_CONDA_ENVIRONMENT/bin/pythonX
虛擬環(huán)境python路徑
1.4 Remot Host
使用pycharm 中自帶的
查看遠(yuǎn)程服務(wù)器中的, 文件目錄信息,
2. 本地遠(yuǎn)程連接
2.1 pycharm新建項(xiàng)目
在本地端使用PyCharm打開(kāi)之前的項(xiàng)目,或者新建一個(gè)項(xiàng)目,Interpreter暫時(shí)
選擇本地的,
這里的 暫時(shí)表示 后續(xù),我們會(huì)替換成服務(wù)器上的虛擬環(huán)境;
- 使用?,打開(kāi)Preferences菜單,新建一個(gè)python環(huán)境。
2.2 添加新的Interpreter
Preference --> Python Interpreter --> Add
2.3 登錄服務(wù)器
- 選擇SSH Interpreter --> New server configuration
填寫(xiě)遠(yuǎn)程端的IP,Port,以及Username,點(diǎn)擊Next,輸入遠(yuǎn)程用戶登錄密碼。
- 填寫(xiě)遠(yuǎn)程python路徑,以及項(xiàng)目路徑用于同步代碼,點(diǎn)擊Finish即可。
在本地就可以加載遠(yuǎn)程端python環(huán)境了。
2.4 設(shè)置文件同步映射
Tools --> Deployment --> Configuration
- 填寫(xiě)遠(yuǎn)程端的ip地址,Type為SFTP模式,項(xiàng)目路徑,完成點(diǎn)擊確認(rèn)。
- 同步文件,可以使用快捷鍵,也可以右鍵后點(diǎn)擊同步即可實(shí)現(xiàn)將本地端文件發(fā)送至遠(yuǎn)程端文件夾中,pycharm也會(huì)自動(dòng)上傳本地文件。
2.5 運(yùn)行、調(diào)試遠(yuǎn)程代碼
- 同步文件后在本地端運(yùn)python代碼,可以看到是在遠(yuǎn)程環(huán)境下運(yùn)行文件。
- 調(diào)試,打斷點(diǎn)也可以實(shí)現(xiàn)。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-735125.html
- 遠(yuǎn)程python環(huán)境第一次新建之后,可以在Exist里找到,可以重復(fù)使用,每次只用修改映射的文件夾路徑即可;
- 遠(yuǎn)程調(diào)試在多線程、多進(jìn)程可能會(huì)出現(xiàn)問(wèn)題,pytorch代碼時(shí),worker盡量設(shè)置成0;
- 可視化的腳本目前是支持OpenCV和Matplotlib可視化。
reference
https://zhuanlan.zhihu.com/p/265152953文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-735125.html
到了這里,關(guān)于使用pycharm遠(yuǎn)程調(diào)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!