導航:首頁 > 源碼編譯 > 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編譯錯誤相關的資料

熱點內容
mysql命令行版本 瀏覽:303
如何進入itunes找文件夾 瀏覽:832
CAD中重復命令使用 瀏覽:477
心智pdf 瀏覽:475
網站電台直播間源碼 瀏覽:850
文件夾14c和18c的區別 瀏覽:34
android隱式調用 瀏覽:667
plc的編程指令邊沿繼電器 瀏覽:723
voc文件夾 瀏覽:862
租廣東聯通伺服器注意什麼雲空間 瀏覽:932
javascript高級程序設計pdf 瀏覽:291
pwm單片機原理 瀏覽:346
ai演算法在線修復圖片 瀏覽:979
scratch編程中如何做射擊游戲 瀏覽:478
at89c51編程器 瀏覽:343
項目經理叫醒程序員 瀏覽:343
autocad旋轉命令 瀏覽:661
手機版wpsoffice怎麼打包文件夾 瀏覽:580
在成都學車用什麼app 瀏覽:819
grep命令管道 瀏覽:426