国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python3.8 安裝 ssl 模塊 和 _ctypes 模塊

這篇具有很好參考價值的文章主要介紹了python3.8 安裝 ssl 模塊 和 _ctypes 模塊。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

前情提要

我在之前給 python3.10 安裝 ssl 模塊后以為該步驟 “對于 python3.6、python3.8 應(yīng)該同樣適用?!?。今天晚上我嘗試給服務(wù)器安裝一個帶 ssl 模塊的 python3.8 的時候,照著之前安裝 3.10 的方案來,然后失敗了-_-||。又折騰了一下,發(fā)現(xiàn) 3.8 和 3.10 的配置腳本是有區(qū)別的,不能一概而論,本文總結(jié)了一下 3.8 如何正確的編譯安裝 python 的 openssl 模塊及其原理,以及 3.8 和 3.10 配置腳本的區(qū)別。

安裝 openssl-1.1.1

  • wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz --no-check-certificate 下載openssl1.1.1
  • tar zxf openssl-1.1.1n.tar.gz 解壓
  • cd openssl-1.1.1n
  • ./Configure --prefix=/usr/local/openssl 設(shè)置安裝目錄 可以自定義 但是要記住,后面會用到
  • make -j && make install 編譯并安裝
  • 將 /usr/local/openssl/lib 路徑添加到系統(tǒng)動態(tài)庫查找路徑中,在 home 目錄下的 .bashrc 文件最后面添加下面這一行
    export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
    
  • souce .bashrc 立即生效

重新編譯安裝 python3.8

  • 切換到 python3.8 解壓包目錄
  • 已經(jīng)編譯過的可以先 make clean 清理一下
  • yum install libffi-devel -y 安裝 libffi-devel ,這個是為了 _ctypes 模塊
  • ./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --with-ssl-default-suites=openssl --with-system-ffi
  • make -j && make install

到這應(yīng)該安裝成功了,如果還有問題的話留言討論吧-_-||

-rpath 編譯選項介紹

-rpath 是 gcc 的一個編譯選項,用于指定程序運(yùn)行時動態(tài)鏈接庫的搜索路徑。當(dāng)程序運(yùn)行時需要動態(tài)鏈接庫時,系統(tǒng)會在指定的路徑中搜索動態(tài)鏈接庫。

例如,假設(shè)有一個程序 a.out,它需要動態(tài)鏈接庫 libfoo.so,而 libfoo.so 位于 /usr/local/lib 目錄下,那么可以使用以下命令編譯程序:

gcc -o a.out a.c -L/usr/local/lib -lfoo -Wl,-rpath=/usr/local/lib

其中,-L 選項指定編譯器在編譯時搜索庫文件的路徑,-l 選項指定需要鏈接的庫文件名。-Wl,-rpath=/usr/local/lib 選項指定程序運(yùn)行時搜索動態(tài)鏈接庫的路徑。

這樣,當(dāng)程序 a.out 運(yùn)行時,系統(tǒng)會在 /usr/local/lib 目錄下搜索 libfoo.so 動態(tài)鏈接庫。

python3.8 跟 python3.10 的區(qū)別

查看 python3.8 配置腳本關(guān)于 openssl 的幫助信息
python3 安裝ctypes,linux,解決方案,C,ssl,linux,python
查看 python3.10.3 配置腳本關(guān)于 openssl 的幫助信息
python3 安裝ctypes,linux,解決方案,C,ssl,linux,python
python3.10.3 中多出來的這個選項是說是否在 gcc 編譯的時候傳遞 -rpath 選項給編譯器,所以可以按我這篇文章中的做法處理。
python3.8 的配置腳本沒有這個選項,但是他編譯過程中又查找的是名為 libssl.so 的動態(tài)庫。這時候我們不能傳遞 -rpath=/usr/local/openssl/lib, 只能采取其他辦法,想來這也是 3.10 新增選項的原因。
那要怎么解決這個問題呢,我想到有四種解決方案:

  1. 方法一 屬于奇技淫巧,將動態(tài)庫文件名實(shí)際指向靜態(tài)庫文件,即 ln -s libxxx.a libxxx.so,這樣即使沒有 -rpath 選項,也沒關(guān)系了,因?yàn)楦?python 編譯鏈接的是靜態(tài)庫,而靜態(tài)庫的路徑已經(jīng)由 --with-openssl=/usr/local/openssl 選項指定了。(不推薦)

  2. 方法二 可以修改 python 的編譯腳本,強(qiáng)行指定 -rpath,這種做法和官方 3.10 做的效果一樣。(不推薦)

  3. 方法三 在系統(tǒng)的動態(tài)庫默認(rèn)搜索路徑下創(chuàng)建一個指向 /usr/local/openssl/lib/ 下兩個需要的動態(tài)庫的軟鏈接。(不推薦)
    Linux系統(tǒng)默認(rèn)的C動態(tài)庫搜索目錄包括以下幾個:

    /lib
    /usr/lib
    /usr/local/lib
    

    這些目錄是在系統(tǒng)啟動時就被設(shè)置好的,當(dāng)程序需要鏈接動態(tài)庫時,系統(tǒng)會自動在這些目錄中搜索相應(yīng)的庫文件。

  4. 方法四 就是本文所采用的方案,將 /usr/local/openssl/lib 添加到 LD_LIBRARY_PATH 環(huán)境變量中了,優(yōu)雅且簡單。(推薦)文章來源地址http://www.zghlxwxcb.cn/news/detail-524677.html

到了這里,關(guān)于python3.8 安裝 ssl 模塊 和 _ctypes 模塊的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python3.10編譯安裝報SSL失敗解決方法

    1、升級openssl版本-編譯安裝 從官網(wǎng)下載OpenSSL文件 https://www.openssl.org/source/openssl-1.1.1n.tar.gz 2、下載后解壓并編譯 3、修改鏈接文件 4、添加路徑至ld.so.conf 注意:路徑最后不帶“/”,否則報錯 5、設(shè)置生效 6、查看OpenSSL版本 7、注意!注意!注意!這里有2個方法: 1、 修改Pyt

    2024年02月13日
    瀏覽(22)
  • Centos安裝python3導(dǎo)入ssl時解決 ModuleNotFoundError: No module named ‘_ssl‘問題

    Centos安裝python3導(dǎo)入ssl時解決 ModuleNotFoundError: No module named ‘_ssl‘問題

    import _ssl # if we can\\\'t import it, let the error propagate ImportError: No module named _ssl 參考試了好多文章,發(fā)現(xiàn)都不太好使,最終找到了解決方案,安裝openssl的依賴 centos安裝python3.7時,查閱知需要的openssl版本最低為1.0.2,但是centos 默認(rèn)的為1.0.1,所以需要重新 更新openssl 如果有網(wǎng),直接在

    2024年01月22日
    瀏覽(23)
  • 完美解決Mac系統(tǒng)下python3第三方模塊安裝問題

    完美解決Mac系統(tǒng)下python3第三方模塊安裝問題

    這個問題困惱了我一下午吧,知乎、b站、CSDN的都找遍了,給出的解答都是 模凌兩可 的。之后是在CSDN中 結(jié)合了好幾篇文章 ,才解決問題。 ????看在阿卷這么辛苦的份上,xdm給個 關(guān)注 和 點(diǎn)贊 不過分吧! ?? ?現(xiàn)在給大家分享出來,直接解決Mac系統(tǒng)下python3第三方模塊安裝

    2024年02月05日
    瀏覽(85)
  • Linux安裝Python3.11以及解決openssl問題

    Linux安裝Python3.11以及解決openssl問題

    Linux系統(tǒng):centos7 python版本:3.11 1、查看系統(tǒng)自帶python 默認(rèn)情況下,Linux會自帶安裝Python,可以運(yùn)行python --version命令查看。 我們看到Linux中已經(jīng)自帶了Python2.7.5。再次運(yùn)行python命令后就可以使用python命令窗口了(Ctrl+D退出python命令窗口)。 2、查看Linux默認(rèn)安裝的Python位置 看到

    2024年02月09日
    瀏覽(22)
  • [pip無法連接HTTPS URL,因?yàn)镾SL模塊不可用]—— 解決方案

    [pip無法連接HTTPS URL,因?yàn)镾SL模塊不可用]—— 解決方案 在使用pip安裝包時,你是否曾遇到過這個問題:“Can’t connect to HTTPS URL because the SSL module is not available”?如果是,那么你來對地方了。本文將為你提供一些可能的解決方案,讓你輕松擺脫這個麻煩。 首先,我們需要了解

    2024年02月09日
    瀏覽(28)
  • 完美解決:Python3.10報錯 No module named ‘_ssl‘

    完美解決:Python3.10報錯 No module named ‘_ssl‘

    報錯詳情: 操作系統(tǒng)為centos7,python版本為3.10.7,openssl版本為3.0.5,運(yùn)行g(shù)unicorn報No module named \\\'_ssl\\\' 原因就是python3.10和openssl3.0.5的版本配置文件跟以前有點(diǎn)區(qū)別,python3.10的版本OPENSSL不再是/usr/local/ssl 的默認(rèn)路徑,變成了/path/to/openssl/directory,已經(jīng)提示得很明白了讓你在這里寫入

    2024年02月12日
    瀏覽(24)
  • Python3報No module named ‘_ssl‘ 最簡單解決辦法

    安完P(guān)ython3運(yùn)行報 No module named ‘_ssl‘,搜的其他教程都讓人改Python的Module/setup.dist文件,其實(shí)不用這么麻煩 CentOS自帶的openssl有點(diǎn)老,建議下個新的 ①下載最新穩(wěn)定版本的OpenSSL源碼包 ②解壓并切換目錄 ③設(shè)定Openssl 安裝 ④執(zhí)行命令 ⑤執(zhí)行make、make install,編譯Openssl ⑥重新安

    2024年01月24日
    瀏覽(22)
  • python3 爬蟲相關(guān)學(xué)習(xí)1:安裝requests模塊

    python3 爬蟲相關(guān)學(xué)習(xí)1:安裝requests模塊

    目錄 1 安裝前:避免python2? python3 引起的問題 2 如何安裝python3 2.1 直接上python3 官網(wǎng)下載 2.2 或者windows的話,microsoft store 里也可以下載 2.3 查看python版本 3 安裝requests模塊 3.1 很可能安裝requests模塊之前會遇到報錯,需要先升級pip 3.2 安裝?requests模塊 4 開始使用 requests 模塊 4.

    2024年02月05日
    瀏覽(32)
  • centos python3 安裝psycopg2 模塊

    安裝異常 先安裝postgresql-devel 再安裝 psycopg2庫介紹 psycopg2庫介紹: Psycopg2是一個用于Python編程語言的第三方庫,用于訪問PostgreSQL數(shù)據(jù)庫系統(tǒng)。它提供了一組工具和方法,可以輕松地在Python程序中進(jìn)行數(shù)據(jù)庫操作,包括查詢、插入、更新、刪除等操作。 以下是Psycopg2庫的一些主

    2024年02月16日
    瀏覽(29)
  • python3在window上運(yùn)行或安裝模塊各種問題

    python3在window上運(yùn)行或安裝模塊各種問題

    1. 在window上運(yùn)行celery各種奇怪的問題 如出現(xiàn)錯誤: ValueError: not enough values to unpack (expected 3, got 0) 2. pip安裝模塊時,各種報錯,無法安裝 如安裝模塊:mysqlclient 、python-ldap等等,會有如下錯誤,請參考文中的三個步驟 1、python-ldapModulescommon.h(15): fatal error C1083 2、 error: command

    2024年02月15日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包