1. 程式人生 > >Pycharm遠端連線伺服器(windows下遠端修改伺服器程式碼)

Pycharm遠端連線伺服器(windows下遠端修改伺服器程式碼)

http://blog.csdn.net/duankaifei/article/details/41898641

1、寫在前面

    之前一致用putty,ssh,修改程式碼,或者本地修改,上傳到伺服器,各種不爽,現在改用xshell,但是有時候還是不方便感覺,於是自己配置了遠端連線pycharm,這樣不用總是到程式碼裡修改,直接在windows下pycharm裡修改再儲存就可以實現同步更新到伺服器裡的程式碼裡了。

2、content

    開啟pycham,windows下連線伺服器端如圖所示:
配置連線伺服器,name隨便寫,connection下,協議sftp,伺服器主機IP,使用者名稱,密碼,apply

點選Test SFTP connection會發現,如果連線成功會提示你如下:

下面選擇連線windows下的那部分程式碼和伺服器上程式碼相連,Mappings,本地Local path,伺服器path,apply,OK,表示已經把本地的程式碼和伺服器程式碼連線上了。
設定如何使得原生代碼和伺服器程式碼同步更新,如圖,
如下圖,選擇On explicit save action(ctrl +s)表示在pycharm裡修改程式碼後ctrl+s便可同步到伺服器。
在pycharm裡tools->start ssh session可以使用ssh,使用ssh時候發現開啟中文亂碼,在settings裡修改,如下圖

完美的解決!!!

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

PyCharm提供兩種遠端除錯(Remote Debugging)的方式:
    配置遠端的直譯器(remote interpreter)
    配置Python除錯伺服器(Python Debug Server)[配置Python除錯伺服器]
本文主要說明遠端的直譯器(remote interpreter)的配置。

pycharm 通過 SFTP 遠端編輯專案的配置

{這個相當於程式碼同步,類似Git上傳,同步後你可以在伺服器上直接執行上傳的程式碼;這個配置好後,才能在pycharm遠端除錯時候將程式碼上傳到伺服器正確位置/正確路徑上}

開啟pycharm,File -> Settings…( Ctrl + Alt + s ) -> Deployment
點選 + 按鈕,新增一個

設定連線

設定好IP、埠、使用者名稱、密碼, root path:/home/piting/mine/python_workspace, 就是開啟remote host時候看到的運程主機的根目錄。

pycharm_deployment

設定第二個標籤頁Mappings

設定本地路徑和遠端路徑,本地路徑最好是一個專案路徑,直接對映到你想開發的專案中

路徑的解釋:


右擊專案名稱,可以看到下拉選單中多了一些選項,可以都試試,同步到遠端伺服器,這樣就可以在本地開發,在Linux上運行了,非常方便pycharm_upload

Deployment相關設定

設定自動上傳

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

tools > deployment > automatic upload(always)

檢視遠端目錄

tools > deployment > browse remote host

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

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/ [email protected]:/home/pipi/ENV[],再修路徑實現python在伺服器上的配置的[]。

在 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:
PyCharm-Run-Configuration

如果你發現你的執行配置中沒有 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),這個配置預設是開啟的。

出錯問題

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://[email protected]: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


http://www.xuebuyuan.com/1859105.html

作為一個從java轉到python的程式猿,一直覺得python的遠端程式碼除錯能力不如java,遠端除錯一把需要各種改程式碼,牽扯到eventlet庫的時候,問題就更嚴重,需要調整eventlet的各種配置,算了還是不用遠端除錯了,太麻煩。

返璞歸真,直接用日誌輸出打出想要的變數,但是改了原生代碼,再上傳到伺服器執行除錯,流程也不夠便利,沒辦法本人太懶。

後來發現Pycharm本身就提供了一個Deployment工具,可以直接整合上述流程,將原生代碼和伺服器程式碼做一個對映,然後修改原生代碼時,自動或手動上傳伺服器同步,然後通過Pycharm的SSH Terminal重啟程序驗證。

好了,廢話少說,來看看怎麼配置:

1、選單->Tools->Deployment->Configuration

2、新增需要連線的伺服器,填入ip,使用者名稱和密碼,我用的是SFTP協議

3、配置程式碼對映,例如將本地的keystone程式碼,對映到環境上的keystone安裝目錄/usr/lib64/python2.6/site-packages/keystone

4、配置自動上傳修改的檔案

選單->Tools->Deployment->Options,將“Upload changed files automatically to the default server”改為 “On explicit save action”,然後你每次Ctrl+s的時候,修改的程式碼就自動上傳了

5、執行SSH Terminal,Deployment配置好之後,直接執行SSH Terminal,就可以在Pycharm中,開一個SSH終端,直接重啟程序、看日誌啥的,很方便

PyCharm遠端除錯

PyCharm提供兩種遠端除錯(Remote Debugging)的方式:

  • 配置遠端的直譯器(remote interpreter)
  • 配置Python除錯伺服器(Python Debug Server)

本文主要介紹Python Debug Server配置與使用。

Python Debug Server參考模型

PyCharm remote debug
(上圖為Python Debug Server模型,僅供參考)

如上圖所示,PyCharm遠端除錯方式的模型其實就是一個典型的Server/Client模型。模型左側,Server服務執行在本地主機PyCharm中。配置Debug Server完成後就可以啟動這個伺服器。伺服器啟動後,就是等待Client客戶端的接入。模型右側,需要除錯的Python程式通過呼叫pycharm-debug提供的pydevd庫,然後連線到服務端。這樣,本地主機就可以使用PyCharm除錯遠端主機執行的Python程式了,除錯的方法與直接除錯本地Python程式一樣。

Python Debug Server配置使用

1.服務端配置

首先在Run/Debug Configuration中新增Python Remote Debug服務。 server configurate
(上圖為Python Debug Server配置流程)
注:伺服器命名和IP地址是必須配置的。若埠沒有配置,則在伺服器啟動時隨機分配;若路徑對映沒有配置,則在客戶端連線服務端成功後PyCharm再提示選擇配置。

伺服器啟動後會提示以下資訊:

Starting debug server at port 51234    
Use the following code to connect to the debugger:    
import pydevd    
pydevd.settrace('192.168.27.1', port=51234, stdoutToServer=True, stderrToServer=True)    
Waiting for process connection...

其中,這兩行程式碼需要嵌入到遠端除錯的Python程式碼中,這兩行程式碼包含了伺服器監聽的IP地址和埠等資訊。

import pydevd    
pydevd.settrace('192.168.27.1', port=51234, stdoutToServer=True, stderrToServer=True)    

2.客戶端配置

參考模型中提到,遠端主機需要配置pydev庫。而提供庫的原始檔在PyCharm安裝路徑下的debug-eggs目錄中,其中pycharm-debug.egg對應的是版本2,pycharm-debug-py3k.egg對應的是版本3。 把pycharm-debug.egg檔案複製到遠端主機,然後通過easy_install命令安裝。 PS:複製的方法有多種,通過ssh可以傳輸檔案,注意許可權問題。

$ sudo easy_install pycharm-debug.egg

然後把上面提及的兩行程式碼嵌入到需要除錯的Python程式中。

#demo.py
print "remote debug"
#嵌入伺服器資訊的程式碼,進入除錯狀態
import pydevd
pydevd.settrace('192.168.27.1', port=51234, stdoutToServer=True, stderrToServer=True)

print "code need to debug"

#離開除錯模式
pydevd.stoptrace()

3.除錯方式

除錯方式比較簡單,首先啟動遠端主機的程式,進入除錯狀態。然後返回本地主機的PyCharm介面進行除錯。

$ python demo.py 
remote debug

debug output
(上圖為本地主機PyCharm除錯介面說明)
此步驟之前需要配置路徑對映關係,即遠端主機中的程式碼如何對映到本地主機中,本文用到的是win-sshfs工具,工具的使用方式就有時間再介紹。

參考



相關推薦

Pycharm遠端連線伺服器windows遠端修改伺服器程式碼

http://blog.csdn.net/duankaifei/article/details/41898641 1、寫在前面     之前一致用putty,ssh,修改程式碼,或者本地修改,上傳到伺服器,各種不爽,現在改用xshell,但是有時候還是不方便感覺,於是自己

【常見問題1】通過遠端連線進行本地Windows遠端裝置的檔案拷貝

工作中遇到的問題,之前一直是直接從伺服器直接拖入拖出,今天發現tools沒法正常使用,就找到此方法:從遠端裝置(伺服器)上拷貝檔案到本地Windows。 遠端連線一臺裝置,無法拷貝檔案到本地的解決方法: 在連線之前點選左下方顯示選項 之後出現介面,選擇本地資源選項

安裝TensorFlow隨筆windowsAnaconda3+tensorflow1.11.0

背景: 已安裝18年最新版Anaconda3,5.3版本python 3.7 version,釋出於2018年9月28日 conda版本為4.5.11,準備安裝TensorFlow~   1.檢視conda版本 準備工作:提前新增好環境變數(不贅述),記得包括Ana

伺服器遠端連線/ssh方式連線教程windows雲主機遠端登入

windows主機如何遠端登入 1.點本地電腦開始》執行,或者按"window+R"》輸入mstsc點確定 2.在彈出的遠端連線框中輸入相應的IP進行連線   如果伺服器遠端埠不是預設的3389而是其他埠例如13140,請在上面輸入:ip:13140 例如:16

連線遠端linux spark 配置windows pycharm開發環境

對不於不習慣在linux 操作的同學,往往想在windows 環境下編輯程式碼,然後利用遠端linux 伺服器的spark群集來提交任務,下面提供一個可行的方案 1 、設定環境變數 vim /etc/profile 新增: export PYTHONPA

如何購買阿里雲伺服器及在windows遠端連線伺服器

    以前對伺服器十分好奇,覺得很神奇,很高大上,然後就控制不住自己的雙手買了個阿里雲伺服器,準備折騰折騰,阿里雲的雲翼計劃可是十分給力的。先看看如何購買阿里雲伺服器ECS:阿里雲官網    1、進入阿里雲首頁,點選最新活動-->新手上路-->雲翼計劃,進入後就

本地電腦遠端連線阿里雲伺服器windows系統並傳檔案

前期準備 首先你得有一個阿里雲伺服器,我使用的是阿里雲提供的9.9學生特惠機,選中windows server 2012 華南地區,然後購買就可以了,具體的地域選擇可以參考部落格:初購時如何選擇伺服器地域 遠端連線詳解 進行遠端連線需要幾個

IntelliJ IDEA實現遠端連線linux,並上傳檔案到linux伺服器SSH會話功能和SFTP功能

注意: eclipse的SSH會話功能和SFTP功能這裡不會說 點選以下連結可檢視   eclipse的SSH會話功能和SFTP功能 而IntelliJ IDEA(以下簡稱為IDEA)這麼強大的開發工具自然也有該功能,這篇部落格就介紹一下IDEA的SSH會話功能

CentOS學習筆記---Windows7遠端連線CentOS7搭建Xrdp伺服器

通過VNC或Xdmcp的方式遠端連線linux圖形桌面,雖然都很方便,但有個缺點就是資料都是沒有加密,不夠安全,不適合連線網際網路操作,因此在linux上配置Xrdp伺服器,再使用Windows上具有連

使用sublime結合sshfs在windows進行linux伺服器遠端同步開發

目標:將遠端linux伺服器中目錄同步到windows本地,直接用sublime開啟windows本地資料夾,顯示完整目錄樹,實時將更新內容同步到linux遠端伺服器 配置sshfs的host、user、port、password、Server Root等

windows遠端桌面連線centos

最近,由於專案需要,必須要在centos下進行操作。習慣了圖形介面的我,通過黑框框來遠端操作伺服器,著實讓人難受。但是,windows自帶的遠端桌面工具貌似不能直接連centos。所以,只能藉助其他工具來實現這一目的。好了,廢話不多說,下面,就把我的成功方案總結

windows遠端連線Linux桌面

在windows下使用vnc viewer遠端連線Linux桌面,主要配置步驟: Linux: 1.rpm -qa vnc //檢視是否安裝vnc服務,如果沒有安裝,可以使用yum,或者rpm進行安裝 2.修改配置檔案: vim /etc/sysconfig/vncse

window遠端連線VMware虛擬機器的linux系統

首先下載安裝Vmware。進行安裝。下載地址:CentOS 7 通過光碟印象,安裝linux(centos 7)。如需圖形化介面,在安裝過程中 其他的地方就預設就可以 點選編輯,點選虛擬網路編輯器。進入到下面介面。然後配置Vmnet8,其他不需要動 點選VMnet8

Linux的遠端連線及Linux系統Tomcat部署

Linux的遠端需要用的軟體有Xshell,Xftp 本人使用VMware12Pro虛擬機器,Linux系統為CentOS7,使用區域網進行遠端連線 Xshell和Xftp沒有安裝的話可以取官網下載,但Xshell需要驗證資訊,所以也可以去360電腦軟體下載 在VMwa

windows遠端訪問linux桌面的配置方法

windows遠端訪問linux桌面的配置方法: 1、需要給linux安裝一個工具:xrdp工具     yum install xrdp     yum install tigervnc-server     service xr

完美解決win10家庭版本系統無法遠端連線問題

原文連線:https://blog.csdn.net/rainmaple20186/article/details/80913191 近期需要對實驗室的ftp伺服器密碼進行重新設定,然後就很理所當然的接入同一區域網,發現在連線的時候,報錯 出現身份驗證錯誤 要求的函式不受支援,CredSSP 加密 Ora

Navicate遠端連線資料庫linux Centos7) 報錯 2003 cannot connect mysql on( 10060)

今天在上傳一個小專案的時候資料庫連接出錯,弄得我頭大一開始是出現這種錯誤 2003 cannot connect mysql on( 10060) 網上很多方法都試過就是不行,最後通過設定埠的防火牆成功連線 先設定埠的防火牆 /sbin/iptables -I INPUT -p tc

windows搭建Git伺服器

以下兩篇文章是在安裝Git伺服器時借鑑的文章,不錯,轉載在此: 1、所需的軟體下載及安裝 所需工具下載地址: 若只要使用git,只需要安裝msysgit就行了。copssh是一個ssh伺服器軟體。 msysgit的安裝: 我把安裝中關鍵的幾步截圖說明,其餘直接點

阿里雲ECS如何遠端連線附帶排錯經驗——出現身份驗證錯誤,要求的函式不受支援 可能是由於CredSSP加密Oracle修正

下面介紹一下如何用自己的電腦遠端連線阿里雲ECS。 最近在學習使用雲伺服器,買了一個阿里雲ECS,作業系統是Windows Server 2012R2 資料中心版。在用自己電腦連線ECS的時候,怎麼也

Windows搭建git伺服器,簡潔版,伺服器端msysgit加copssh,客戶端msysgit原創

在看了網上各種攻略之後,自己在windows環境下還是遇到了各種各樣的問題,什麼permission deny啊等等,去網上找解決方案呢,尼瑪找不到一個適用的,在折騰了一天後,終於搞定,在這裡上傳一篇解決方案,為遇到同樣問題的人提供一個參考,願你看到後能少走一些