Pycharm中進行Python遠程開發


http://blog.csdn.net/pipisorry/article/details/52269952

PyCharm提供兩種遠程調試(Remote Debugging)的方式:
    配置遠程的解釋器(remote interpreter)
    配置Python調試服務器(Python Debug Server)[配置Python調試服務器]
本文主要說明遠程的解釋器(remote interpreter)的配置。

皮皮blog

 

pycharm 通過 SFTP 遠程編輯項目的配置
{這個相當於代碼同步,類似git上傳,同步后你可以在服務器上直接運行上傳的代碼;這個配置好后,才能在pycharm遠程調試時候將代碼上傳到服務器正確位置/正確路徑上}

打開pycharm,File -> Settings…( Ctrl + Alt + s ) -> Deployment
點擊 + 按鈕,添加一個

 

設置連接
設置好IP、端口、用戶名、密碼, root path:/home/piting/mine/python_workspace, 就是打開remote host時候看到的運程主機的根目錄。

 

Note: Root path 如/home/piting/mine/python_workspace這個路徑要在遠程服務器上存在,否則並不會自動創建和同步。

設置第二個標簽頁Mappings
設置本地路徑和遠程路徑,本地路徑最好是一個項目路徑,直接映射到你想開發的項目中。

路徑的解釋:

 

 

右擊項目名稱,可以看到下拉菜單中多了一些選項,可以都試試,同步到遠程服務器,這樣就可以在本地開發,在linux上運行了,非常方便

Deployment相關設置
設置自動上傳
每次都要去點擊上傳,雖然比較有選擇性,但畢竟還是不方便,所以設置了自動上傳

tools > deployment > automatic upload(always)

查看遠程目錄
tools > deployment > browse remote host

這樣就可以在側邊欄找到遠程目錄,圖形化界面上傳和下載。

皮皮blog

 

 

pycharm 遠程調試
{這個是本地編輯代碼,扔到遠端服務器上執行,然后 debug 結果本地顯示[其實也添加了deployment功能]}

    尤其是對於 windows 的機器調試 Linux 服務器端的程序。如果你是在 Windows 上使用 PyCharm 等 IDE 快速方便地進行開發,但是由於管理端使用了一些公司的公共組件,而這些組件又只提供了 Linux 上的 Python 接口,因此必須在 Linux 上運行 Django 程序。值得慶幸的是,大多數的 IDE 都提供了遠程調試功能, PyCharm 也可以經過簡單配置進行遠程調試。

配置遠程 Python 解釋器
lz使用anaconda在服務器上搭建了一個python開發環境。因為沒有root權限問題。

或者也可以使用python virtualenv搭建的虛擬開發環境,所以是先將ubuntu_env配置好的env上傳到服務器上scp -r ./ubuntu_env/ root@192.168.0.111:/home/pipi/ENV[ssh用法及命令 ],再修路徑實現python在服務器上的配置的[python虛擬環境virtualenv安裝和配置 ]。

在 PyCharm 中打開 Python 解釋器的設置面板,路徑為 File => Settings (Ctrl+Alt+S) => Python Interpreter:

點擊右上角齒輪,Add Remote,填寫 SSH 相關的設置


做完后可能需要等一些時間。這個過程中 PyCharm 會將一些工具和調試 Server 發到你配置的 .pycharm_helper 目錄中,並且對機器上已經安裝的庫類生成 skeletons,並傳回 Windows 上進行保存。Python skeletons 是一些包括庫類 API 定義的文件,用來給 PyCharm 做代碼靜態分析。JetBrains 的幫助文檔提供了更詳細的說明,參見 Important Note 一節。

最后,你需要在解釋器設置面板,選中 Remote Interpreter 做為項目的默認解釋器。

配置部署信息
{這個就是上面的pycharm 通過 SFTP 遠程編輯項目的配置,直接用就可以}

在 PyCharm 中打開部署的設置面板,路徑為 Tool => Deployment => Configuration。

Type 建議選擇 SFTP,常見的 OpenSSH Server 提供了這種協議的支持。

第二個 Tab (Mappings) 需要填寫部署的路徑,注意這個路徑對應你項目的根目錄,所以你很可能需要為它建一個空文件夾。勾選上 “Use this server as default”。除此之外還有個 Web path 的設置,應該是用來配置網頁上查看文件的服務,可以無視。

配置好部署面板后,建議把自動同步開啟 (Tool => Deployment => Automatics Upload(always)),這樣在 PyCharm 中對文件進行修改,可以馬上同步到 Linux 上。同時建議先做一次同步。

同步可以通過很多方式完成,比如在 Project 面板 (Alt+1) 上對項目根目錄右鍵 “Upload to”,也可以在菜單中上傳 (Tool => Deployment => Upload to)。如果菜單中 Upload to 不可點擊,請嘗試打開項目的一個 py 文件,並把焦點放在編輯器中。

在deployment mapping標簽項中設置好路徑后才能在project interpreter中看到自動設置的path mapping


配置運行配置
{如果不使用django,這個可以不用配置}

在 PyCharm 中打開運行配置面板,路徑為 Run => Run/Debug Configurations:


如果你發現你的運行配置中沒有 Django 相關的項,請在項目設置的 Django 中勾選 Enable Django Support。

運行配置的設置有兩點需要注意。Python Interpreter 需要選中之前建立的遠程解釋器。Path mappings 處,需要把本機的 manage.py 與 Linux 上的關聯起來,比如:

C:/Evolution/Python/django_website/manage.py <=> /home/onlyice/work/django_website/manage.py

這可能是 PyCharm 的 bug:在使用遠程解釋器后,PyCharm 並不會自動將 Django 運行配置中的 manage.py 文件定位到 Linux 上的那份,而是會嘗試使用下面的命令來啟動 Django 調試 Server:

/usr/bin/python2 manage.py C:/Evolution/Python/django_website/manage.py

自然就找不到文件了。所以使用了 Path mappings 作為一種 hack 手段來解決。
這時就可以打斷點調試啦

Trouble Shooting
Q: 點擊調試運行失敗,顯示 “Cant set remote tunneling”

A: 調試時 PyCharm 調用將 Python Debug Server (pydevd.py) 綁定在一個隨機端口上,再使用 SSH 的端口轉發將數據通過 SSH 端口轉到 Debug Server 去。需要檢查你的 sshd 配置 (默認是 /etc/ssh/sshd_config) 是否禁用了 TCP 轉發 (AllowTcpFowarding),這個配置默認是打開的。

皮皮blog

 

 

出錯問題
pycharm channel is not opened
pycharm不能同步deployment中設置的文件內容了,在remote host窗口中打開文件提示the file is identical to local但實際上完全不同,上傳多次才能成功,或者干脆就提示channel is not opened。應該和sftp有關。

目前還沒找到具體原因,可能是服務器問題,過會就自己好了。

也可能是pycharm的問題,或者系統的問題?希望解決的可以留言告知一下,謝謝!

[Can't Download From Remote Server via SFTP – JetBrains IntelliJ]

pandas出錯
pycharm console import pandas Backend Qt4Agg is interactive backend. Turning interactive mode on.  : cannot connect to X server
import pandas  : cannot connect to X server

重啟pycharm,或者也不知道怎么了就好了,不報錯了。。。

運行出錯
ssh://piting@192.168.0.172:22/home/piting/ENV/anaconda3/bin/python3 -u /home/piting/mine/python_workspace/Oth/Competition/TianChi/Regression.py
/home/piting/ENV/anaconda3/bin/python3: can't open file '/home/piting/mine/python_workspace/Oth/Competition/TianChi/Regression.py': [Errno 2] No such file or directory

點出remote host標簽,發現沒有這個目錄,目錄下也沒有這個文件

解決:

mkdir -p 代碼目錄

再在remote host中右鍵 》 upload here


免責聲明!

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



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