蘇省住房和城鄉(xiāng)建設(shè)廳網(wǎng)站首頁/百度應(yīng)用市場(chǎng)app下載安裝
很久沒配置 python 新環(huán)境了,最近新項(xiàng)目需要進(jìn)行配置,在配置過程中發(fā)現(xiàn)了不少問題,記錄下。
問題1:fatal error: longintrepr.h: 沒有那個(gè)文件或目錄
這個(gè)問題的原因是新環(huán)境的 python 版本(3.10以上)與本地的版本(3.8.x)差異過大造成的,降版本(≤3.9)即可。但后面看了下,longintrepr.h 是在編譯 .c 文件中用到。
問題2:PIL _typing module ‘numpy’ has no attribute ‘ndarray’
這個(gè)原因主要是 PIL 和 numpy 版本不匹配的原因,安裝下面版本可以解決:
numpy==1.20.3
Pillow==8.0.1
問題3:AttributeError: module ‘numpy’ has no attribute ‘float’
這個(gè)是因?yàn)?np.float 從 1.24 版本起被刪除了,需要降版本或者將 numpy 的別名替換為 python 類型:
np.float = float
# np.float = np.float64
np.int = int
np.object = object
np.bool = bool
問題4:官網(wǎng)或者鏡像網(wǎng)站找不到對(duì)應(yīng)的python版本
由于本地的 python 版本比較低,官網(wǎng)上最低的版本都是 3.9,所以找了一圈也沒到,但可以通過 conda create 創(chuàng)建新環(huán)境并指定相應(yīng)的 python 版本號(hào)即可。
問題5:requirements.txt中的包的版本問題
在查找 python 依賴時(shí)使用了 pipreqs,然后發(fā)現(xiàn)生成 .txt 中某些包的版本比實(shí)際使用的版本要高,原因是它直接從 pypi.python.org 中找, 需要加上 --use-local 才是對(duì)本地包進(jìn)行查找。
問題6:計(jì)算公式精度問題
.pyc可以用uncompyle6進(jìn)行反編譯,從而得到源碼,極不安全,因此最好將代碼編輯成動(dòng)態(tài)鏈接庫。然后問題就來了,代碼里有一個(gè)計(jì)算公式,用了整分?jǐn)?shù)(循環(huán))表示,導(dǎo)致.pyd與.py文件的運(yùn)行結(jié)果天差地別,最終將其用小數(shù)表示兩者才一致。主要原因是兩者對(duì)數(shù)據(jù)的截?cái)啻嬖诓町悺?/p>
參考:
https://blog.csdn.net/qq_47554267/article/details/129963722
https://zhidao.baidu.com/question/1702772342973084108.html
https://blog.csdn.net/qq_45934285/article/details/131120167
https://www.cnblogs.com/zhaopanpan/p/9383350.html
https://blog.csdn.net/juzicode00/article/details/124580320
https://docs.pingcode.com/baike/1192416