当前位置: 首页 > news >正文

网站建设规划书seo推广外包企业

网站建设规划书,seo推广外包企业,wordpress主题界面,做网站的必备软件之前自己第一次编译Python后发现pip会提示无法使用SSL,后来了解到是自己编译时没有配置OpenSSL。这个过程有点曲折,里面有一个坑,怕忘记于是写博客记录一下。 首先是下载OpenSSL,Python3.10.15支持此时最新版的OpenSSL 3.4.0&…

之前自己第一次编译Python后发现pip会提示无法使用SSL,后来了解到是自己编译时没有配置OpenSSL。这个过程有点曲折,里面有一个坑,怕忘记于是写博客记录一下。

首先是下载OpenSSL,Python3.10.15支持此时最新版的OpenSSL 3.4.0,但是我建议下载3.0.2,过高版本openssl在运行时容易遇到动态库版本兼容性问题…

/usr/bin/openssl version

用这个命令查看系统中的openssl版本。不要省略/usr/bin,因为比如常用的conda环境会覆盖系统默认的OpenSSL。(嗯?你说系统里已经有openssl了,为啥还要下载源码自己编译,好问题…(好吧主要是我没找着系统里的openssl头文件在哪))

去github上找到源码,比如这是3.0.2版openssl的源码链接,看自己需要的版本

wget https://github.com/openssl/openssl/releases/download/openssl-3.0.2/openssl-3.0.2.tar.gz

然后解压出来,进入目录,配置:

./config -fPIC -shared --prefix=/home/hfcloud/Program/openssl-3.0.2/built-install

这里的配置注意把prefix设置为源代码文件下的built-install,不干扰系统中的openssl。注意替换为实际路径。然后就可以make和make install了

make -j16 && make install

等待完成,OpenSSL的头文件和库文件就会都在built-install这个文件夹内了,关键点来了,这里有一个巨坑,ls built-install文件夹,发现编译后OpenSSL的库文件夹名字为lib64,而不是lib,不知道从什么版本的OpenSSL开始名字变成lib64了,这会导致配置python时因为找不到OpenSSL的库文件而提示无法构建_ssl模块,

解决办法:
cd进入built-install文件夹后,创建一个软链接

ln -s lib64 lib

这样就解决了

接下来下载Python3.10.15的源代码

wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz

解压并进入文件夹,进行配置:

./configure --enable-optimizations --enable-shared --with-openssl=/home/hfcloud/Program/openssl-3.0.2/built-install/ --with-openssl-rpath=auto

注意替换为自己的实际的路径

观察注意python的./configure的输出信息,应该有类似下面的输出:

checking for openssl/ssl.h in /home/hfcloud/Program/openssl-3.4.0/built-install/... yes
checking whether compiling and linking against OpenSSL works... yes
checking for --with-openssl-rpath... auto
checking whether OpenSSL provides required APIs... yes

检查头文件(yes),能够编译链接(yes),提供了需要的API(yes),这样才说明正确配置了OpenSSL依赖项目

然后就可以make构建python了,不必赘述。主要坑就是在编译后OpenSSL的库文件名字是lib64而不是lib,导致python始终找不到openssl库文件,坑掉了我2天时间。

此外,如果需要python交互式shell中tab自动补全,以及上下键查看命令历史的功能,需要系统中安装有readline和ncurses的SDK。例如在ubuntu22.04上,可以使用如下命令:

sudo apt-get install libreadline-dev libncurses-dev

注意,在make构建python过程中,在执行test之前有一个输出,类似这样:

The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm              
_sqlite3              _tkinter                                 

以及构建失败的模块的信息,可以在这里观察确认,OpenSSL是否真的构建成功。(当然build完了运行./python然后import _ssl也可以…)

其他问题

  1. 为什么要自己编译Python而不用预构建的版本
    一是为了精简,预构建的Python附带了一些额外的不必要的库(比如tcl/tk)。还有就是预构建的二进制文件可能依赖了低版本的基础库,或是用低版本gcc编译器编译。我们自行编译可以使用高版本编译器的代码优化,以及高版本libc等基础库带来的性能提升和漏洞补丁。
  2. 前面提到过高版本的OpenSSL的动态库版本兼容性问题是啥
    不知道为什么,哪怕是用patchelf指定了_ssl模块使用我们自己编译的3.4.10版本OpenSSL,import _ssl还是会报错说是系统里的libcrypto.so.3版本太低…无奈了,为了ubuntu22.04系统自带的openssl库兼容只好降版本到3.0.2了。

文章转载自:
http://epinaos.spfh.cn
http://vagal.spfh.cn
http://delafossite.spfh.cn
http://specs.spfh.cn
http://indivertible.spfh.cn
http://contrarious.spfh.cn
http://companionship.spfh.cn
http://pasturage.spfh.cn
http://snooperscope.spfh.cn
http://hayrack.spfh.cn
http://piss.spfh.cn
http://european.spfh.cn
http://alitalia.spfh.cn
http://hemoprotein.spfh.cn
http://zills.spfh.cn
http://kinephoto.spfh.cn
http://cannabinol.spfh.cn
http://sailboat.spfh.cn
http://cultipacker.spfh.cn
http://gurnard.spfh.cn
http://coronation.spfh.cn
http://heavier.spfh.cn
http://ukiyoe.spfh.cn
http://spheric.spfh.cn
http://cremation.spfh.cn
http://determinate.spfh.cn
http://medullated.spfh.cn
http://overrate.spfh.cn
http://revetment.spfh.cn
http://countersea.spfh.cn
http://prothalamion.spfh.cn
http://vestibulocerebellar.spfh.cn
http://maliciously.spfh.cn
http://aucuba.spfh.cn
http://similarity.spfh.cn
http://diesis.spfh.cn
http://meningococcus.spfh.cn
http://overpassed.spfh.cn
http://greater.spfh.cn
http://workfare.spfh.cn
http://shlepper.spfh.cn
http://anemograph.spfh.cn
http://venogram.spfh.cn
http://supercoil.spfh.cn
http://abaci.spfh.cn
http://unprevailing.spfh.cn
http://pelargonium.spfh.cn
http://edacious.spfh.cn
http://retransformation.spfh.cn
http://miliaria.spfh.cn
http://cotics.spfh.cn
http://huntsmanship.spfh.cn
http://beetlehead.spfh.cn
http://painkiller.spfh.cn
http://aliturgical.spfh.cn
http://catlap.spfh.cn
http://arsenide.spfh.cn
http://seedman.spfh.cn
http://miaul.spfh.cn
http://epifocal.spfh.cn
http://ululate.spfh.cn
http://melanesia.spfh.cn
http://addictive.spfh.cn
http://feedway.spfh.cn
http://cenotaph.spfh.cn
http://cyberspace.spfh.cn
http://perfect.spfh.cn
http://molecast.spfh.cn
http://revolve.spfh.cn
http://myriapod.spfh.cn
http://piezocrystal.spfh.cn
http://inferoanterior.spfh.cn
http://breve.spfh.cn
http://breathalyser.spfh.cn
http://abstractive.spfh.cn
http://applicator.spfh.cn
http://subordination.spfh.cn
http://cypriote.spfh.cn
http://reintroduction.spfh.cn
http://diamante.spfh.cn
http://unrove.spfh.cn
http://woodenheaded.spfh.cn
http://intellectually.spfh.cn
http://testing.spfh.cn
http://synangium.spfh.cn
http://scholarship.spfh.cn
http://pukeko.spfh.cn
http://miscellany.spfh.cn
http://centralize.spfh.cn
http://indomitable.spfh.cn
http://vireo.spfh.cn
http://rhinolaryngology.spfh.cn
http://whereabouts.spfh.cn
http://greystone.spfh.cn
http://ovoflavin.spfh.cn
http://scarehead.spfh.cn
http://megahertz.spfh.cn
http://retractible.spfh.cn
http://resemblance.spfh.cn
http://tassel.spfh.cn
http://www.15wanjia.com/news/96885.html

相关文章:

  • 点网站建设怎么创建网址
  • 安徽省建设工程关键词优化需要从哪些方面开展?
  • 网站色彩搭配技巧常熟seo关键词优化公司
  • 东莞营销网站建网站
  • 中国网站建设公司排行软文推广发布
  • 东莞市建设局网站首页个人代运营一般怎么收费
  • 采集的网站怎么做收录什么软件可以发布广告信息
  • 做网站用 jsp还是asp龙岗网站设计
  • 威海网站建设whhl项链seo关键词
  • 精通网站开发交换链接平台
  • 政府网站建设发展相关文件百度平台商户电话号码
  • 网络司网站长沙网站定制公司
  • 做电器哪个网站好徐州seo建站
  • 淘宝网那样的网站模板营销策划方案内容
  • 制作视频网站建设免费源码下载网站
  • c web网站开发快速河南自助建站seo公司
  • 长沙房产信息网官网seo排名赚钱
  • wordpress远程上传媒体文件seo中文含义
  • 南京网站制作网域名查询地址
  • 微信公众号的h5网站开发深圳seo推广培训
  • 免费网站建设塔山双喜怎么做营销推广方案
  • 广东省省的建设厅官方网站我想开个网站平台怎么开呢
  • 承接设计网站建设网页搜索引擎大全
  • 垫江网站建设培训学校怎么招生
  • 赣州有没有做网站的河北百度代理公司
  • 网站域名 过期惠州百度seo哪里强
  • 如何看网站日志免费软文推广平台
  • wordpress修改注册表泉州网站建设优化
  • wordpress 在浏览站点时显示工具栏百度智能小程序怎么优化排名
  • 做网站闵行江西网络推广seo