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

无版权的图片素材网站网站建设关键词排名

无版权的图片素材网站,网站建设关键词排名,网站免费注册会员怎么做,服装定制品牌有哪些这文章目录 前情提要安装 openssl-1.1.1重新编译安装 python3.8-rpath 编译选项介绍python3.8 跟 python3.10 的区别那要怎么解决这个问题呢,我想到有四种解决方案: 前情提要 我在之前给 python3.10 安装 ssl 模块后以为该步骤 “对于 python3.6、pytho…

这文章目录

    • 前情提要
    • 安装 openssl-1.1.1
    • 重新编译安装 python3.8
    • -rpath 编译选项介绍
    • python3.8 跟 python3.10 的区别
      • 那要怎么解决这个问题呢,我想到有四种解决方案:

前情提要

我在之前给 python3.10 安装 ssl 模块后以为该步骤 “对于 python3.6、python3.8 应该同样适用。” 。今天晚上我尝试给服务器安装一个带 ssl 模块的 python3.8 的时候,照着之前安装 3.10 的方案来,然后失败了-_-||。又折腾了一下,发现 3.8 和 3.10 的配置脚本是有区别的,不能一概而论,本文总结了一下 3.8 如何正确的编译安装 python 的 openssl 模块及其原理,以及 3.8 和 3.10 配置脚本的区别。

安装 openssl-1.1.1

下载openssl1.1.1

wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz --no-check-certificate 

解压

tar zxf openssl-1.1.1n.tar.gz

进入对应目录

cd openssl-1.1.1n

设置安装目录 可以自定义 但是要记住,后面会用到

./Configure --prefix=/usr/local/openssl 

./config --prefix=/usr/local/openssl

编译并安装

make -j && make install

将 /usr/local/openssl/lib 路径添加到系统动态库查找路径中,在 home 目录下的 .bashrc 文件最后面添加下面这一行

export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH

立即生效

souce .bashrc 

重新编译安装 python3.8

切换到 python3.8 解压包目录
已经编译过的可以先 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
到这应该安装成功了,如果还有问题的话留言讨论吧-
-||

-rpath 编译选项介绍

-rpathgcc 的一个编译选项,用于指定程序运行时动态链接库的搜索路径。当程序运行时需要动态链接库时,系统会在指定的路径中搜索动态链接库。

例如,假设有一个程序 a.out,它需要动态链接库 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 选项指定程序运行时搜索动态链接库的路径。

这样,当程序 a.out 运行时,系统会在 /usr/local/lib 目录下搜索 libfoo.so 动态链接库。

python3.8 跟 python3.10 的区别

查看 python3.8 配置脚本关于 openssl 的帮助信息
在这里插入图片描述

查看 python3.10.3 配置脚本关于 openssl 的帮助信息
在这里插入图片描述

python3.10.3 中多出来的这个选项是说是否在 gcc 编译的时候传递 -rpath 选项给编译器,所以可以按我这篇文章中的做法处理。

python3.8 的配置脚本没有这个选项,但是他编译过程中又查找的是名为 libssl.so 的动态库。这时候我们不能传递 -rpath=/usr/local/openssl/lib, 只能采取其他办法,想来这也是 3.10 新增选项的原因。

那要怎么解决这个问题呢,我想到有四种解决方案:

方法一 属于奇技淫巧,将动态库文件名实际指向静态库文件,即 ln -s libxxx.a libxxx.so,这样即使没有 -rpath 选项,也没关系了,因为跟 python 编译链接的是静态库,而静态库的路径已经由 --with-openssl=/usr/local/openssl 选项指定了。(不推荐)

方法二 可以修改 python 的编译脚本,强行指定 -rpath,这种做法和官方 3.10 做的效果一样。(不推荐)

方法三 在系统的动态库默认搜索路径下创建一个指向 /usr/local/openssl/lib/ 下两个需要的动态库的软链接。(不推荐)
Linux系统默认的C动态库搜索目录包括以下几个:

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

这些目录是在系统启动时就被设置好的,当程序需要链接动态库时,系统会自动在这些目录中搜索相应的库文件。

方法四 就是本文所采用的方案,将 /usr/local/openssl/lib 添加到 LD_LIBRARY_PATH 环境变量中了,优雅且简单。(推荐)







tobybo

python3.8 安装 ssl 模块 和 _ctypes 模块

http://www.mmbaike.com/news/22484.html

相关文章:

  • 做电影网站赚钱吗站长工具日本
  • 商业空间设计案例网站sem扫描电子显微镜
  • 订阅号怎么做微网站网络营销的手段包括
  • qq推广设置中心网站百度关键词seo排名优化
  • pc网页游戏网站武汉大学人民医院光谷院区
  • 个人可以做慈善网站吗seo裤子的关键词首页排名有哪些
  • h5购物网站模板关键词seo排名怎么选
  • 公司介绍简历模板网站seo优化的目的
  • 网站建设竞标成都营销型网站制作
  • 网站弹广告是什么样做的友情链接买卖代理
  • 建网站软件下载今日头条搜索优化怎么做
  • 英语机构网站建设方案网页设计培训
  • 长春网站排名优化百度怎么推广自己的作品
  • 网站保持排名搜索引擎营销的简称是
  • 做微博分析的网站网站开发月薪多少钱
  • 湖南衡阳网站建设国家卫生健康委
  • 番禺区网站建设哪里有seo优化方法
  • 新手怎么做网站推广搜索推广和信息流推广的区别
  • 做网站从设计到上线流程拼多多seo怎么优化
  • 陕西免费做网站公司口碑营销的定义
  • 安平县哪里做网站怎么做线上推广
  • 深圳专业的网站制作公司建设网站制作
  • 如何变更网站备案信息查询seo搜索优化费用
  • 做卖蜂蜜的网站计划书免费入驻的卖货平台有哪些
  • 佛山网站推广优化学会计哪个培训机构比较正规
  • 网站开发功能合同高端企业网站模板
  • 做网站需注意事项一站式营销推广
  • 邯郸网络营销推广平台seo关键词推广多少钱
  • 织梦网站模板视频教程最近一周新闻
  • 网站建设解说词怎么做网络推广最有效