python遠程調用
1. python3如何實現 遠程調用
XMLRPCLIB或者是rpyc兩個庫都簡單好用。還有些老版本的遠程 過程 調用,都有很多限制。其實restful方式,通過WEB遠程調用也不是不可以呵。
rpyc效率不高,不過簡單,強大。 可以在pypi這個網站下載,其它的包也可以在這里下載。
另外如果自己想追求效率,可以直接使用socketserver,幫助里有一個例子,復制過來改一改就能用。
此外 twist方式實現的通訊也很強大。
rpyc是源碼。你直接python setup.py install就可以安裝上。 不需要編譯好的版本。也不存在不兼容的問題。
此外thrift, avro都是hadoop大數據環境里常用的協議,還有protocol_buf,都可以研究一下。
2. 如何遠程調試Python代碼
JetBrains 公司出品的集成開發環境以製作精良風格一致得到廣泛好評,PyCharm 作為其中一款針對 Python 語言的 IDE 給了我很多幫助,感覺比較好用的是這個遠程調試。
遠程調試的代碼部署在遠端伺服器上,通過網路傳輸使用本機進行單步調試。實用場景為本機為非 GPU 機器,可以在遠端 GPU 伺服器上運行程序,觀察程序運行過程中,各個變數在斷點處的當前值。
本機打開程序,新建一個configuration
如上圖所示
類型為遠程調試
填寫 本機 ip和埠,
python2.x拷貝pycharm-debug.egg到遠端機器,python3.x拷貝的是pycharm-debug-py3k.egg
程序中加入
sys.path.append('/path/to/your/remote/pycharm-debug.egg')
import pydevd
pydevd.settrace('172.18.76.241', port=8602, stdoutToServer=True, stderrToServer=True)123
本機先debug此configuration,然後遠端再運行,默認斷點為pydevd.settrace的下一行
3. 如何使用python遠程登錄一個操作系統,並執行某條命令
你可以使用python的pexcpct包通過ssh調用遠程伺服器指令:
import pxssh
import getpass
try:
s = pxssh.pxssh()
hostname = raw_input('hostname: ')
username = raw_input('username: ')
password = getpass.getpass('password: ')
s.login (hostname, username, password)
s.sendline ('uptime') # run a command
s.prompt() # match the prompt
print s.before # print everything before the propt.
s.sendline ('ls -l')
s.prompt()
print s.before
s.sendline ('df')
s.prompt()
print s.before
s.logout()
except pxssh.ExceptionPxssh, e:
print "pxssh failed on login."
print str(e)
使用Python連接資料庫首先需要安裝Python的資料庫驅動。
我的本地只裝了Python,並沒有裝MySQL,當我使用命令:
sudo pip install mysql-python
安裝驅動(也就是MySQLdb模塊)的時候出現如下錯誤:
EnvironmentError: mysql_config not found
查資料 知道是因為沒有安裝下面兩開發包:
libmysqld-dev
libmysqlclient-dev
安裝:
sudo apt install libmysqld-dev
事實上用apt安裝第一個之後,第二個也已經存在了。再次嘗試安裝mysql-python就成功了。
現在嘗試遠程連接數據:
import MySQLdb
conn = MySQLdb.connect(host = '×××××××××××××', # 遠程主機的ip地址,
user = 'root', # MySQL用戶名
db = 'alimusic', # database名
passwd = '××××××', # 資料庫密碼
port = 3306, #資料庫監聽埠,默認3306
charset = "utf8") #指定utf8編碼的連接
cursor = conn.cursor() # 創建一個游標,然後通過游標執行sql語句
cursor.excute("select * from table1 limit 10")
values = cursor.fetchall() # 取出cursor得到的數據
cursor.close(); conn.close() #最後記得關閉游標和連接,防止數據泄露
如果excute()執行的是插入數據的代碼,那麼在執行完成之後需要調用
cursor.commit()
才能把結果寫入資料庫
中文亂碼
編碼錯誤在任何時候都必須重視的問題,由於連接資料庫涉及到多個層次,比如資料庫伺服器編碼,創建的database編碼,table的編碼,連接(也就是上面的conn)編碼。如果出現亂碼,需要檢查上述的每一個環節。這里記錄幾個查詢各種編碼的方式:
查詢資料庫的各種編碼:
show variables like "%char%";
查詢某個資料庫的默認編碼
show create database databasename;
查詢某張表的默認編碼
show create table tablename;
最好在create資料庫或者表的時候在創建語句後面指定具體的編碼方式:default character set utf8
5. 如何使用python執行遠程shell腳本
pexpect復雜,但通用靈活。另外一種法就是ssh-keygen/ssh--id,實現自動密鑰驗證取代手動密碼驗證,然後就可以直接調用遠程『[email protected]』,麻煩之處在於要手動創建與維護兩台機器間的公鑰。至於捕獲輸出,還是要變通一點,既然B都登陸到A了,那麼通過臨時文件向A輸出內容不是更簡單嗎,這是shell編程中簡單有效的法。還可以使用sftp
6. python遠程操作windows伺服器有什麼方案
可以使用python+paramiko。 paramiko是用python語言寫的一個模塊,遵循SSH2協議,支持以加密和認證的方式,進行遠程伺服器的連接。 使用paramiko可以很好的解決以下問題: 需要使用windows客戶端, 遠程連接到linux伺服器,查看上面的日誌狀態,批量配置遠程伺服器,文件上傳,文件下載等 具體可以參考: http://www.paramiko.org/
7. python rpyc 遠程網路調用請教!
socket.timeout: timed out連接超時,需要你先運行服務端的代碼:
sr=ThreadedServer(TestRpyc,hostname="0.0.0.0",port=9999,auto_register=False)
sr.start()
添加下hostname試一下。
如果解決了您的問題請採納!
如果未解決請繼續追問
8. 如何使用Python連接遠程Windows伺服器
在伺服器的電腦上添加第二塊網卡,用於連接Internet。用域管理員賬戶在遠程訪問伺服器上登錄。為第二塊網卡添加公網IP地址
在遠程訪問伺服器上,從「管理工具」中打開,「伺服器管理器」窗口,選中「角色」,單擊「添加角色」,打開「添加角色向導」窗口。
在彈出來的「開始之前」窗口中點擊「是」按鈕。
單擊「下一步」「進入選擇伺服器角色」」窗口,選擇「網路策略和訪問服務」單擊「下一步」。
在「網路策略和訪問服務」簡介窗口單擊「下一步」,在「選擇角色服務」窗口選擇「路由和遠程訪問服務」。
接下來會顯示安裝進度
等安裝好了以後,點擊關閉就可以了。
9. 如何通過python腳本連接批量的遠程伺服器執行python腳本,伺服器都是windows系統
Python的特色簡單 Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴格!Python的這種偽代碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。 易學 就如同你即將看到的一樣,Python極其容易上手。前面已經提到了,Python有極其簡單的語法。 免費、開源 Python是FLOSS(自由/開放源碼軟體)之一。簡單地說,你可以自由地發布這個軟體的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用於新的自由軟體中。
10. 情況下如何使用pycharm進行遠程調試
一.介紹
Python遠程調試,即在遠程機器上運行python代碼,在本地進行調試。
需要環境:python
調試環境:PyCharm
需要依賴:遠程和本地需要在python路徑安裝pycharm-debug.egg
註:安裝egg包需要使用先安裝setuptools
二.安裝setuptools
在windows/linux環境下直接使用ez_setup.py腳本安裝:
1. 下載腳本:該腳本會自動下載setuptools-1.1.6.tar.gz
2. 運行腳本:python ez_setup.py 即可完成setuptools安裝
(註:如果機器連不上伺服器,可以把ez_setup.py和setuptools-1.1.6.tar.gz包拷貝到該機器上,並放在同一目錄下,然後運行ez_setup.py即可)
三.安裝pycharm-debug.egg
在PyCharm的安裝目錄下能找到pycharm-debug.egg,在python的安裝路徑下能找到easy_intall命令(已安裝了setuptools),執行:
easy_install.exe pycharm-debug.egg即可完成安裝。
四.遠程調試
1. 打開PvCharm,配置遠程調試:
(a). 打開edit confiurations
(b). 添加Python Remote Debug
(c). 配置本地的ip、埠號,如:192.168.112.6,此ip為你進行調試操作的機器的ip,遠程機器需要連上這個ip。
(d)在遠程機器上編寫將在本地調試的python代碼,在入口處加上:
import pydevd
pydevd.settrace('192.168.112.6',port=51234, stdoutToServer=True, stderrToServer=True)
配置的ip、埠好即在本地PvCharm上配置的ip和埠號,即PvCharm所在機器的ip和開啟調試的埠號。
2. 開始調試
a) 在本地PvCharm上開始調試服務,
b) 在遠程機器上運行python腳本:
c) 此時可點擊」Download」下載源碼:
d) 開始調試: