centos6 pip python的pip安装
CentOS 7 安装 Python 3
前言
对于 CentOS 7系统,若需离线安装 Python 3,本文将详细指导。离线安装相比在线安装更为复杂,但适用于无法连接外网的环境。本指南将提供离线安装所需的组件及详细步骤,确保在 CentOS 7上成功安装 Python 3及其相关工具。
操作系统说明
本指南适用于 CentOS Linux release 7.4.1708(Core)操作系统。
安装步骤
首先,确保已准备好操作系统安装包 CentOS-7-x86_64-Minimal-1708.iso。安装步骤如下:
1.**在线安装**:推荐使用在线安装方式,但考虑到某些工作环境限制,本文提供离线安装的详细指导。
2.**离线安装环境与组件说明**:离线安装需准备 Python 3.8.5、pip 20.1.1及 virtualenv 20.4.2。
3.**组件用途说明**:
-**pip**:包管理工具,用于查找、下载、安装、卸载 Python包。
-**virtualenv**:创建隔离的 Python运行环境,便于项目管理。
4.**安装步骤**:
-**依赖安装**:安装 gcc、gcc-c++、zlib-devel、openssl-devel等依赖库。
-**Python环境安装**:下载并安装 Python 3.8.5的离线安装包。
-**虚拟环境安装**:安装 virtualenv。
-**软链接建立**:为方便使用,建立 python3软链接。
5.**异常处理**:解决安装过程中可能出现的错误,如安装 libffi-devel库以解决 pip安装时的 ModuleNotFoundError。
6.**小技巧**:查找离线安装依赖及安装顺序的技巧。
7.**推荐好课**:提供学习 Python及相关技术的课程推荐,鼓励社区学习与交流。
在CentOS 6 系统上安装最新版 Python3 软件包的 3 种方法
在 CentOS 6系统上安装最新版 Python3软件包,可以通过多种方法实现。以下将详细介绍三种方法:使用 SCL(Software Collections)源、使用 EPEL(Extra Packages for Enterprise Linux)源以及使用 IUS(Enterprise Unified Stack)社区源。
方法 1:使用 SCL源
SCL源由 CentOS SIG维护,提供了 Red Hat的 Software Collections以及额外的自定义软件包。这些源中包含的 Python3版本往往高于默认源中提供的版本。安装 SCL源后,通过特定命令启用安装的软件包,即可在不改变原有 Python3环境的情况下安装最新版本。
安装 SCL源的命令:
检查可用版本:
安装最新 Python3版本:
启用安装的软件包:
检查 Python3版本:
获取 SCL安装列表:
方法 2:使用 EPEL源
EPEL是基于 Fedora的源,提供了一系列高品质的补充软件包,适用于 RHEL、CentOS、Scientific Linux和 Oracle Linux等发行版。检查可用版本,安装最新 Python3版本,确保手动安装 pip和 setuptools,然后检查已安装的版本。
安装 EPEL源:
检查可用版本:
安装最新 Python3版本:
手动安装 pip和 setuptools:
检查 Python3版本:
方法 3:使用 IUS社区源
IUS社区源提供 CentOS 5、6和 7版本的最新上游软件包,如 PHP、Python、MySQL等。先安装 EPEL源,再安装 IUS社区源。安装启用 IUS社区源后,检查可用版本并安装最新 Python3版本。
安装 EPEL源:
下载并安装 IUS社区源安装脚本:
检查可用版本:
安装最新 Python3版本:
检查 Python3版本:
如何在CentOS6上安装Python2.7和Python3.3
如何在CentOS 6上同时安装Python 2.7和Python 3.3
本文将介绍如何在CentOS 6上安装Python 2.7和3.3。下面以Python 2.7.6和Python 3.3.5为例进行说明,但本人实测该教程同样适合于Python3.4.0.
CentOS 6自带了Python 2.6.6(CentOS 7则自带了Python 2.7)和一些非常好用的功能,如yum。但是,注意不要随便升级自带的Python以免yum不可用。新版本将安装在/usr/local目录下以避免和自带的版本冲突。
虽然“我”只在64位的CentOS 6.5进行了尝试,但该教程应该适用于所有的CentOS 6版本(本人按此教程在CentOS 7上亦成功安装Python3.4)。
下面的示例命令您最好以root身份运行或者在命令前加sudo赋予权限。但注意,若不是以root身份执行的话,make与make install最好分开执行,并且都在前面加sudo,连着写,如sudo make&& make install的话会在make install过程中报权限不足问题,因为sudo不作用于&&后面的make install。
安装前准备
编译Python之前您最好先安装一系列的开发工具和一些拓展库,虽然不是必须的,但这样Python才能依赖这些工具和拓展库展示它强悍的功能。下面是利用yum进行工具和拓展库安装的示例命令,直接copy执行即可(注意部分命令显示不全,但可以通过移动光标查看和复制)。
yum groupinstall"Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
该考虑的因素
在您编译和安装Python之前,有些东西您是应该知道或考虑的。如下。
Unicode编码
Python编码问题历史悠久,但不用过多关注,知道它目前支持Unicode编码即可(Python3中默认的)。考虑到兼容性等原因,除非有特殊的理由,您最好配置下Python 3.2和更早的版本,使其支持UTF-32编码,虽然会增加小小的内存代价。在Python 2.7中您可以通过在configure时添加选项--enable-unicode=ucs4进行配置,而在Python 3.2中是--with-wide-unicode选项。
Shared library(动态共享库)
目前大部分的Linux系统自带的Python都是以共享库的方式编译的,此外,某些第三方工具例如mod_wsgi和Blender,没有Python的共享库还运行不了,所以,您最好还是把Python编译成动态共享库吧。为了以共享库方式编译Python,您必须指明共享库的路径。您有两种选择:
在configure命令后面添加:LDFLAGS="-Wl,-rpath/usr/local/lib"从而将库路径直接编译进Python中。
以记事本方式打开/etc/ld.so.conf,然后在文件最后添加新行:/usr/local/lib。紧接着运行命令/sbin/ldconfig更新动态链接器。添加后的文件内容在CentOS 6.5如下:
/etc/ld.so.conf
1
2
include ld.so.conf.d/*.conf
/usr/local/lib
使用“make altinstall”而不是make install
切记,在安装自定义版本的Python时,make altinstall命令是必须的!如果您使用一般的make install命令,呵呵,您将会在解压编译的目录下看到两个命名一样但版本不同的python,这有可能会导致一些意想不到的bug哦,具体是什么作者没说,我也不知道。
下载,编译,安装Python
如下命令可用于下载、编译和安装Python。注意,如果您打算安装后手动修改/etc/ld.so.conf文件以更新动态链接器,那么下面的 LDFLAGS参数您就可以去掉了。
1
2
3
4
5
6
7
8
9
10
11
12
13
# Python 2.7.6:
wget
tar xf Python-2.7.6.tar.xz
cd Python-2.7.6
./configure--prefix=/usr/local--enable-unicode=ucs4--enable-shared LDFLAGS="-Wl,-rpath/usr/local/lib"
make&& make altinstall(此处切记,要么以root运行,要么分开执行!)
# Python 3.3.5:
wget
tar xf Python-3.3.5.tar.xz
cd Python-3.3.5
./configure--prefix=/usr/local--enable-shared LDFLAGS="-Wl,-rpath/usr/local/lib"
make&& make altinstall(此处切记,要么以root运行,要么分开执行!)
执行上述命令之后,您可以在/usr/local/bin/python2.7或/usr/local/bin/python3.3中找到新安装的Python。而Python 2.6.6则可能在/usr/bin/python,/usr/bin/python2或/usr/bin/python2.6找到。
下载和安装Setuptools+ pip
Setuptools早已取代Distribute成为Python官方的拓展包管理器,以用于从Python Package Index安装拓展功能包。不同版本的Python需要的Setuptools版本不同。建议您也通过Setuptools安装pip,它提供了一些额外在安装拓展功能包时很有用的功能。
以下的命令可用于安装最新版Setuptools和 pip。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# First
get the setup script for Setuptools:
wget
# Then
install it for Python 2.7 and/or Python 3.3:
python2.7ez_setup.py
python3.3ez_setup.py
# Now
install pip using the newly installed setuptools:
easy_install-2.7pip
easy_install-3.3pip
# With
pip installed you can now do things like this:
pip2.7install[packagename]
pip2.7install--upgrade[packagename]
pip2.7uninstall[packagename]
安装的拓展功能包在/usr/local/lib/pythonX.Y/site-packages/中可以找到(X.Y是Python的版本号)。
接下来干嘛?
如果您使用 Python 2.7,强烈建议您安装virtualenv并学会使用它,它可用于创建独立的 Python环境。如果您使用 Python 3.3的话就可以省心些,它已被内置了。
不同的 Python运行环境(也叫沙盒)可以有自己的 Python版本和拓展功能包,就是说不同的Python安装和运行的目录不同,也可以为每个版本的Python安装对应的名称一样但版本不同的拓展包。这在开发多个功能不同的项目或在同一个项目中需要用到不同版本的Python是会很有用的。
创建您第一个独立的Python环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Install
virtualenv for Python 2.7 and create a sandbox called my27project:
pip2.7installvirtualenv
virtualenv-2.7my27project
# Use
the built-in pyvenv program in Python 3.3 to create a sandbox called my33project:
pyvenv-3.3my33project
# Check
the system Python interpreter version:
python--version
# This
will show Python 2.6.6
# Activate
the my27project sandbox and check the version of the default Python interpreter in it:
sourcemy27project/bin/activate
python--version
# This
will show Python 2.7.6
deactivate
# Activate
the my33project sandbox and check the version of the default Python interpreter in it:
sourcemy33project/bin/activate
python--version
# This
will show Python 3.3.5
deactivate
当你使用 virtualenv创建一个运行沙盒时,它会自动在沙盒环境中为您安装setuptools和 pip(听起来不错,可以还没尝试过)。但如果您使用 pyvenv的话,您就必须自己动手安装了。也简单,激活沙盒之后通过运行下载的z_setup.py文件去安装即可。