python2.7源码安装方式
安装python2.7
- 下载Python 2.7, 下载地址
- 解压安装
tar -xzvf Python-2.7.15.tgz
cd Python-2.7.15
./configure --prefix=/opt/local/python --enable-shared
make && make install
- 配置环境变量
vim ~/.bash_profile
编辑内容
PYHOME=/opt/local/python
export PATH=$PYHOME/bin:$PATH
导入变量
source ~/.bash_profile
- 查看版本号
python --version
- 安装setuptools
下载setuptools 安装包, 下载地址
tar -xzvf setuptools-39.2.0.tgz
cd setuptools-39.2.0
python setup.py install
- 安装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
参考文档
python2.7源码安装方式的更多相关文章
- Linux 中mysql安装(源码安装方式)
本文是介绍以源码安装的方式编译和安装Mysql 5.6(可以指定安装路径),也可以不采用源码安装方式,直接用安装包的方式. 源码安装方式慎用,容易报错. 1.卸载旧版本 rpm -qa | grep ...
- 关于nginx的源码安装方式
Nginx(engine x)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器, 也是一个 IMAP/POP3/SMTP 代理服务器.在高连接并发的情况下, ...
- Linux下源码安装方式安装MySQL
1.下载安装包:https://downloads.mysql.com/archives/community/ 2.安装开发工具和安装包 因为要把源码编译成二进制数据,所以必须要有编译器和解释器 g ...
- linux 中的./configuration --prefix=安装路径 的用法(指定源码安装方式的安装路基)
源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./con ...
- CentOS下二进制包/源码安装方式的MySQL卸载步骤
查看当前系统mysql 运行状态 [root@zendlinux ~]# ps -ef |grep mysql root 1153 1 0 15:40 ? 00:00:00 /bin/sh /usr/ ...
- 安装elasticsearch-head(源码安装方式)
gitHub 地址 https://github.com/mobz/elasticsearch-head 克隆到本地 进行npm 安装运行 git clone git://github.com/mob ...
- CentOS 7下源码安装MySQL 5.7
网上说linux安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有几十M左右,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: ②使用官方编译好的二进制文件安装,优点 ...
- Linux系统源码安装过程中的prefix选项
在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件除了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式.原因是:(1 ...
- Linux系统源码安装软件过程中configure选项-prefix的作用
在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件出了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式. 在linu ...
- Zabbix源码安装与yum安装
一.源码安装方式:zabbix-server LAMP环境准备: #groupadd zabbix#useradd -g zabbix zabbix 1.安装依赖包: #yum install gcc ...
随机推荐
- Redis分布式锁实现及使用
文章目录 分布式锁 全局ID生成器 一人一单实现 超卖问题 一人一单 分布式锁 Redis setnx实现分布式锁 Redis在业内解决秒杀等业务场景有非常广的应用,如何设计实现一个分布式锁是解决超卖 ...
- 2022-01-25:序列化和反序列化 N 叉树。 序列化是指将一个数据结构转化为位序列的过程,因此可以将其存储在文件中或内存缓冲区中,以便稍后在相同或不同的计算机环境中恢复结构。 设计一个序列化和反
2022-01-25:序列化和反序列化 N 叉树. 序列化是指将一个数据结构转化为位序列的过程,因此可以将其存储在文件中或内存缓冲区中,以便稍后在相同或不同的计算机环境中恢复结构. 设计一个序列化和反 ...
- ET框架6.0分析三、网络通信
概述 ET框架的消息机制贯彻始终,包含Entity消息(Awake,Update ...),自定义(Customer)消息,网络消息等.而ET系统的进程包含了客户端.Gate等各种类型的服务器,进程包 ...
- dates()datetimes()查询都有哪些日期
dates()查询都有哪些日期 created_at是列名,year,是要查询的参数,order为排序方式 Course.objects.dates('created_at','year',order ...
- group_concat 自定义聚合查询
group_concat
- < Python全景系列-3 > Python控制流程盘点及高级用法、神秘技巧大揭秘!
欢迎来到我们的系列博客<Python全景系列>!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法.无论你是编程新手,还是有一 ...
- 2014年蓝桥杯C/C++大学B组省赛真题(切面条)
题目描述: 一根高筋拉面,中间切一刀,可以得到2根面条. 如果先对折1次,中间切一刀,可以得到3根面条. 如果连续对折2次,中间切一刀,可以得到5根面条. 那么,连续对折10次,中间切一刀,会得到多少 ...
- 计算机网络 ACL和ANT
目录 一.ACL概况 二.ACL工作过程 三.ACL实验 四.ANT概况 五.ANT工作过程 六.ANT实验 一.ACL概况 概念:主要是对报文进行区分,路由器会对报文进行检查,查看是否符合通过标准或 ...
- Python日期带时区转换工具类总结
目录 1.背景 2. 遇到的坑 3. 一些小案例 3.1 当前日期.日期时间.UTC日期时间 3.2 昨天.昨天UTC日期.昨天现在这个时间点的时间戳 3.3 日期转时间戳 3.4 时间戳转日期 3. ...
- postgresql 安装和配置
### 安装过程 \1. 下载Postgresql源码包: \# wget http://ftp.postgresql.org/pub/source/v9.4.3/postgresql-9.4.3.t ...