導航:首頁 > 源碼編譯 > linuxpython編譯錯誤

linuxpython編譯錯誤

發布時間:2023-08-17 08:39:40

A. linux下執行python官網的psutil模塊的代碼出錯

TypeError: process_iter() got an unexpected keyword argument 'attrs'
翻譯過來,就是你調用的這個函數process_iter()傳入的參數錯誤,不應該有個attrs參數。
很明顯,傳入的關鍵字參數不對
要麼你輸入錯了關鍵字參數的名字,要麼就是你的linux中psutil版本不對
所謂的示例代碼,要麼就是最新的版本,要麼就是很久沒有人維護,更新之後介面大變的版本。
兩個建議:
1、查看pstuil的源代碼,找到具體的代碼之後傳參的方式就很明顯了。
2、進入PythonIDE,import psutil後使用help(psutil.process_iter)查看本機上這個版本的介面文檔

B. linux python運行報編碼錯誤

一次重啟伺服器後,supervisor接管的python腳本中的函數 open() 和 print() 都會報下面的編碼錯誤:
UnicodeEncodeError: 'ascii' codec can't encode

使用的是python3,按理說編碼都會默認utf-8,而且本地運行的python腳本並沒有這個問題。

經大佬指點,增加環境變數 export LC_ALL="en_US.UTF-8" 後,再重啟supervisor,問題解決

下面是復制的: https://www.cnblogs.com/badboy200800/p/11215981.html

Locale是一個軟體在運行時的語言環境,。是根據計算機用戶所使用的語言,所在國家或者地區,以及當地的文化傳統所定義的。它包括語言(Language), 地域 (Territory) 和字元集(Codeset)。

一個locale的書寫格式為: 語言[ 地域[.字元集]]。完全的locale表達方式是 [語言[ 地域][.字元集] [@修正值]。例如:

zh_CN.GB2312 => 中文_中華人民共和國+國標2312字元集。

(1)locale把按照所涉及到的文化傳統的各個方面分成12個大類

(2)查看標准字元集列表

常用字元集:en_US.utf8、zh_CN.gb2312、zh_CN.gbk、zh_CN.utf8等

3.Locale的設定

LC_ALL和LANG優先順序的關系:LC_ALL > LC_* >LANG
(1)如果需要一個純中文的系統的話,設定LC_ALL= zh_CN.XXXX即可。或者設定LANG=zh_CN.XXXX也可以,但是LC_ 不要有任何特殊設定才可以(因為LC_ 優先順序高)。
(2)如果需要個性化的環境,例如只想要一個可以輸入中文的環境,而保持菜單、標題,系統信息等等為英文界面,那麼只需要設定LANG=en_US.XXXX,然後 LC_CTYPE=zh_CN.XXXX就可以了。
(3)假如什麼也不做的話,也就是LC_ALL,LANG和LC_*均不指定特定值的話,系統將採用POSIX作為lcoale,也就是C locale。

4.查看與設定字元集實踐

(1)查看當前系統字元集三種方式(LC_ALL、LC_CTYPE和LANG),以查看LANG為例:

(2)更改系統字元集

備註:直接執行上述命令,可以臨時修改系統字元集。如果寫入環境變數可以永久改變字元集。

(3)取消當前系統字元集(設定為空)

備註:直接執行上述命令,可以臨時修改系統字元集。如果寫入環境變數可以永久改變字元集。

C. LINUX下要在C中嵌入Python,編譯的時候怎樣解決庫的連接問題

原因分析:
先看幾個概念:
與外部庫連接

外部庫有兩種:(1)靜態連接庫lib.a
(2)共享連接庫lib.so
共同點:
.a, .so都是.o目標文件的集合,這些目標文件中含有一些函數的定義(機器碼),而這些函數將在連接時會被最終的可執行文件用到。
區別:
靜態庫.a : 當程序與靜態庫連接時,庫中目標文件所含的所有將被程序使用的函數的機器碼被到最終的可執行文件中。
共享庫.so : 與共享庫連接的可執行文件只包含它需要的函數的表,而不是所有的函數代碼,在程序執行之前,那些需要的函數代碼被拷貝到內存中,這樣就使可執行文件比較 小,節省磁碟空間(更進一步,操作系統使用虛擬內存,使得一份共享庫駐留在內存中被多個程序使用)。共享庫還有個優點:若庫本身被更新,不需要重新編譯與 它連接的源程序。

具體分析:
編譯器會給出上述錯誤信息,這是因為sqrt函數不能與外部數學庫"libm.a"相連。sqrt函數沒有在程序中定義,也不存在於默認C庫 "libc.a"中,應該顯式地選擇連接庫。上述出錯信息中的"/tmp/ccdzoSZq.o"是gcc創造的臨時目標文件,用作連接時用。

閱讀全文

與linuxpython編譯錯誤相關的資料

熱點內容
單片機中的地址 瀏覽:510
去抖動在單片機的作用 瀏覽:53
陸上賽艇app怎麼報名 瀏覽:110
app內頁面的網址怎麼提取 瀏覽:286
安卓升級包pkg文件如何打開 瀏覽:77
id3演算法原理 瀏覽:602
騎手通app怎麼輸入不了保單號 瀏覽:988
82一56的筒便演算法 瀏覽:404
數控機床fanuc編程 瀏覽:607
天刀mode不是內部或外部命令 瀏覽:854
長城c30壓縮機價格 瀏覽:1000
java打開圖片文件 瀏覽:409
跟程序員聊天聊到半夜 瀏覽:411
自己怎麼做app代碼 瀏覽:915
win7旗艦版進不去帶命令符 瀏覽:799
單片機溫度檢測電路 瀏覽:802
拼圖軟體不壓縮 瀏覽:656
紅袖添香小說源碼 瀏覽:624
erp加密工具在哪裡買 瀏覽:516
怎麼給qq群里的文件加密 瀏覽:762