Pycharm中進行Python遠程開發

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

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

皮皮bloggit

 

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

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

 

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

 

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

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

路徑的解釋:app

 

 

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

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

相關文章
相關標籤/搜索