安装python2.7

  1. 下载Python 2.7, 下载地址
  2. 解压安装
tar -xzvf Python-2.7.15.tgz
cd Python-2.7.15 ./configure --prefix=/opt/local/python --enable-shared
make && make install
  1. 配置环境变量
vim ~/.bash_profile

编辑内容

PYHOME=/opt/local/python
export PATH=$PYHOME/bin:$PATH

导入变量

source ~/.bash_profile
  1. 查看版本号
python --version
  1. 安装setuptools

下载setuptools 安装包, 下载地址

tar -xzvf setuptools-39.2.0.tgz
cd setuptools-39.2.0
python setup.py install
  1. 安装pip

    下载pip 安装包, 下载地址
tar -xzvf pip-10.0.1.tgz
cd pip-10.0.1
python setup.py install

FAQ

提示readline找不到

报错信息

Python 2.7.15 (default, May 29 2018, 13:09:02)
[GCC 4.3.4 [gcc-4_3-branch revision 152973]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
File "/etc/pythonstart", line 7, in <module>
import readline
ImportError: No module named readline

解决方法

安装readline,从pipy网站下载源码

tar -xzvf readline-6.2.4.1.tgz
cd readline-6.2.4.1
python setup.py install

执行python setup.py 提示md5找不到

报错信息

kwe1000570040:/opt/local/soft/python/setuptools-39.2.0 # python setup.py install
ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
File "/opt/local/python/lib/python2.7/hashlib.py", line 147, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/opt/local/python/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type md5
ERROR:root:code for hash sha1 was not found.

解决方法

该错误是由于python找不到openssl导致,如果openssl安装位置有变化可能会导致该问题。

python2.7依赖于openssl_1.0.0,需要下载源码安装:

wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
tar -xzvf openssl-1.0.2o
cd openssl-1.0.2o
./config shared
make && make install

openssl默认会安装到 /usr/local/ssl目录中,其中lib目录存放了libssl.so.1.0.0动态链接库。

接下来是将lib目录添加到ldconfig路径:

echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
ldconfig

再次执行python程序,问题解决。


如果希望更改openssl的安装路径,可以执行prefix参数(安装目录)、openssldir参数(配置、证书路径)

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

更多参数可参考这里

提示libpython2.7.so.1.0 找不到

在import 某些库的时候报错:

ImportError: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

解决方法

需要让ldconfig找到libpython动态链接库

echo "/opt/local/python/lib" >> /etc/ld.so.conf
ldconfig

参考文档

linux ldconfig配置

openssl安装

python2.7源码安装方式的更多相关文章

  1. Linux 中mysql安装(源码安装方式)

    本文是介绍以源码安装的方式编译和安装Mysql 5.6(可以指定安装路径),也可以不采用源码安装方式,直接用安装包的方式. 源码安装方式慎用,容易报错. 1.卸载旧版本 rpm -qa | grep ...

  2. 关于nginx的源码安装方式

    Nginx(engine x)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器, 也是一个 IMAP/POP3/SMTP 代理服务器.在高连接并发的情况下, ...

  3. Linux下源码安装方式安装MySQL

    1.下载安装包:https://downloads.mysql.com/archives/community/  2.安装开发工具和安装包 因为要把源码编译成二进制数据,所以必须要有编译器和解释器 g ...

  4. linux 中的./configuration --prefix=安装路径 的用法(指定源码安装方式的安装路基)

    源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./con ...

  5. CentOS下二进制包/源码安装方式的MySQL卸载步骤

    查看当前系统mysql 运行状态 [root@zendlinux ~]# ps -ef |grep mysql root 1153 1 0 15:40 ? 00:00:00 /bin/sh /usr/ ...

  6. 安装elasticsearch-head(源码安装方式)

    gitHub 地址 https://github.com/mobz/elasticsearch-head 克隆到本地 进行npm 安装运行 git clone git://github.com/mob ...

  7. CentOS 7下源码安装MySQL 5.7

    网上说linux安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有几十M左右,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: ②使用官方编译好的二进制文件安装,优点 ...

  8. Linux系统源码安装过程中的prefix选项

    在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件除了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式.原因是:(1 ...

  9. Linux系统源码安装软件过程中configure选项-prefix的作用

    在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件出了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式. 在linu ...

  10. Zabbix源码安装与yum安装

    一.源码安装方式:zabbix-server LAMP环境准备: #groupadd zabbix#useradd -g zabbix zabbix 1.安装依赖包: #yum install gcc ...

随机推荐

  1. HTML5中的document.visibilityState

    在 HTML5 中,文档对象(即 document 对象)具有一个 visibilityState 属性,该属性表示当前文档对象的可见性状态. visibilityState 可能的取值有以下三种: ...

  2. 2021-08-08:自由之路。电子游戏“辐射4”中,任务“通向自由”要求玩家到达名为“Freedom Trail Ring”的金属表盘,并使用表盘拼写特定关键词才能开门。给定一个字符串 ring,表

    2021-08-08:自由之路.电子游戏"辐射4"中,任务"通向自由"要求玩家到达名为"Freedom Trail Ring"的金属表盘,并 ...

  3. 基于DevExpress的GridControl实现的一些界面处理功能

    DevExpress的GridControl控件能够提供很多强大的操作,其视图GridView能够通过各种设置,呈现出多种复杂的界面效果,本篇随笔探讨一些常见的GridControl控件及其GridV ...

  4. django时区问题的解决

    django时区问题的解决  更新时间:2021年05月18日 09:37:58   作者:Silent丿丶黑羽     我们都知道时区,标准时区是UTC时区,django默认使用的就是UTC时区,我 ...

  5. 时间函数strftime和strptime的差别

    strftime是转换为特定格式输出, strptime是将一个时间字符串解析为时间类型对象. strftime是按照想要的格式,去转换.重点是格式! strptime不管什么格式,只要把特定的时间字 ...

  6. 设置nginx允许服务端跨域

    目前项目大多使用前后端分离的模式进行开发,跨域请求当然就是必不可少了,很多时候我们会使用在客户端的ajax 请求中设置跨域请求,也有的在服务端设置跨域.但是有时候会遇到不使用ajax也没有使用后端服务 ...

  7. SpringBoot配置文件加载

    Spring Boot 配置文件加载是通过 Spring Boot 的自动配置机制实现的,它可以根据不同的环境加载不同的配置文件,包括 application.properties.applicati ...

  8. 用R来分析洛杉矶犯罪

    由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接. 洛杉矶市(Los Angeles)或"爵士乐的诞生地(The Birthplace ...

  9. ffuf的使用

    ffuf:模糊测试 使用 ffuf 进行枚举.模糊测试和目录暴力破解 安装 https://github.com/ffuf/ffuf 建议:https://github.com/danielmiess ...

  10. 图书搜索领域重大突破!用Apache SeaTunnel、Milvus和OpenAI提高书名相似度搜索精准度和效率

    作者 | 刘广东,Apache SeaTunnel Committer 背景 目前,现有的图书搜索解决方案(例如公共图书馆使用的解决方案)十分依赖于关键词匹配,而不是对书名实际内容的语义理解.因此会导 ...