Python安装相关
可能存在的问题
- yum安装、源码安装、二进制安装用哪个,官网文档是源码安装,所以咱们就用源码安装
- 在源码安装的时候会有什么问题
- 一个是默认路径的问题,在编译的时候时候如果不指定路径的话,很多二进制文件会安装到默认的目录下/usr/bin下面,系统原来的文件可能还会有,但是各种链接会指向新的二进制文件,这样有可能会造成系统内某些依赖原来版本python的服务依会出现问题,一个已知的是yum会出现问题。那么解决的方法就是在configure的时候制定一个不一样的路径,可以是/usr/local(这样pyhon的各个文件会散落在/usr/local的各个目录里面),可以是/usr/local/python3(这样python所有的文件都会集中到/usr/local/python3里面),当然也可以是任何你喜欢的地方比如(/home/user/Software/python3),放在哪里我觉得都可以,参考文档是放到/usr/local里面这样的好处是,默认的path路径里面就包含/usr/local,那么当你安装好之后,直接就可以调用命令而不用再修改PATH。其实我偏向于用/usr/local/python3。
- make altinstall的问题,如果用make install,在安装完新版本的python之后,新旧两个版本的python可执行文件(python2 python3)都会被链接到python这个可执行文件上,这会出现一些问题。如果用make altinstall,在安装完之后,不会建立软链接。
- Unicode
python经历了一个漫长和复杂的历史过程才支持了unicode,所以如果你没有别的什么特殊需求的话,在安装2.7的时候请务必添加UTF-32支持,虽然会增加内存的使用但是增加了兼容性。python3.3以上不存在这个问题。在configure的时候加上这句–enable-unicode=ucs4 - 动态库(shared library)
现代所有的linux发行版都把python编程成共享库,有些第三方的工具像mod_wsgi或者Blender都是依赖于这个共享库的,所以在安装新版本的python的时候最好能把这个编译成共享库。在configure的时候加上LDFLAGS=”-Wl,-rpath /usr/local/lib”
前置安装
yum -y update
yum groupinstall 'Development Tools'
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel expat-devel
下载python3.6
wget http://mirrors.sohu.com/python/3.6.3/Python-3.6.3.tgz
tar -zxvf Python-3.6.3.tgz
得到文件夹
Python-3.6.3
进入文件夹
cd Python-3.6.3
运行 ./configure --prefix=/usr/local
(在环境变量)
####解决pip安装Pilow出了问题 说我有ssl模块未安装
cd <安装路径>
vi Modules/Setup
#修改结果如下:
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
########################
./configure
make && make install
直接python3.6
目前发现3.6可以直接安装pip 10.0.1 不会缺少函数和模块之类的 报错