linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)

centos在装python之前最好把yum源改为国内的镜像源,否则可能会失败。推荐网易或者是阿里:

  • 网易:http://mirrors.163.com.centos/ 
  • 阿里云:http://mirros.aliyun.com/centos

为了保险起见,先把原来系统里的yum源备份:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

如果你的wget好用的话就直接下载就可以,我的不好用,我是在windows下访问,下载文件然后拷贝进yum源文件:

  • CentOS7

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

  • CentOS6

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

  • CentOS5

wget http://mirrors.163.com/.help/CentOS5-Base-163.repo

我是拷贝的文件内容:

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第1张图片

然后更新下:yum -y update,会发现报错,解析不了这个host(可以用yum -y upgrade代替,区别是update会更新内核,而upgrade不会,内核更新后有可能会导致一些依赖不适配的情况)

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第2张图片

其实这是域名解析的问题,也就是dns,那么就需要配置下了:/etc/resolv.conf

只需要在这个文件里加一句话:

这个nameserver是解析域名服务器,也就是dns。我当前是虚拟机,所以可以委托到上一层具有域名解析能力的机器,所以可以通过虚拟机网关委托到我的本机,或者直接指定通用的dns也可以(8.8.8.8或者114.114.114.114)

接下来再执行更新:

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第3张图片

大概要经过几分钟的样子,更新完毕!


接下来才是正式安装python3

用yum命令来安装一些可能会用到的依赖,以免后续麻烦:
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel make

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第4张图片

安装成功,接下来再装下wget:

yum -y install wget

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第5张图片

yum -y install perl

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第6张图片

装完这两个大概wget就可以直接下载文件了(如果不行,再yum -y install setup)。

接下来下载安装包源码包:

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

或者如果wget实在配不好不能用的话,直接在windows下访问网页下载该文件也行。

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第7张图片

解压压缩文件:

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第8张图片

把python安装在usr/local下,根据FHS推荐,安装在这里比较合适。

对了,这里是需要gcc支持的,如果没有安装gcc的话(输入gcc -v可以查看),可以参考我的redis安装过程。https://blog.csdn.net/qq_39314099/article/details/99842308

或者直接用yum安装 gcc

装好gcc以后,这里需要对python源码进行编译安装。

先进行配置,在安装包目录下,配置将要安装的目录,后面的enable参数一定要加上,否则在装好pyinstaller以后打包会找不到动态链接库。切记!切记!切记!

结果如下:

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第9张图片

接下来编译就可以了,执行make命令,大概需要几分钟:

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第10张图片

下一步安装:make install

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第11张图片

可以进入安装好的目录看下:

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第12张图片

安装python3就结束了。由于centos系统中自带的是python2.7,现在装好的python3,希望能和2.7并存。

首先先做软连接,软连接的目的类似于配置环境变量或者说快捷方式,目的是为了能在任何地方输入python3都能被系统找到我想要启动的程序。usr/bin是能被系统检索的目录,所以把软连接设在这里。

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3,

还有pip的软连接:

ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第13张图片

接下来可以测试下:

python3 -V

python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
 

这时候显示缺少库文件,进入python安装包目录,拷贝该文件到相应的lib下,为了保险,我拷贝了三个:

  • cp libpython3.6m.so.1.0 /usr/local/lib64/
  • cp libpython3.6m.so.1.0 /usr/lib
  • cp libpython3.6m.so.1.0 /usr/lib64/

再次测试:

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第14张图片

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第15张图片

到这里python3和pip就安装成功。

但是现在用pip安装类库比较慢,为了解决这个问题,我新增了一个配置文件,配置的是豆瓣的地址。

vi ~/.pip/pip.conf

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第16张图片

接下来试试效果,安装pyinstaller,一个打包python程序的模块。

pip3 install pyinstaller

装好后可以在list里看到了。当然也可以用其他方式编译安装,但是这样应该是比较简单的了。

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第17张图片

但是现在直接输入pyinstaller系统是找不到的。

因为当前pyinstaller的可执行文件是在python目录下,和pip、python一样,要做一个软链接。

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第18张图片

软链接:ln -s /usr/local/python3/bin/pyinstaller /usr/bin/pyinstaller

接着再执行pyinstaller:

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第19张图片

安装就全部结束了。接下来用pyinstaller做个打包测试:

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第20张图片

它的输出结果应该和字典 a 现在的样子相同。

打包:pyinstaller hello.py

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第21张图片

打包成功,运行:

linux下安装python、pip以及pyinstaller(包含yum源的配置和wget安装)_第22张图片

它打包以后会在dist文件夹下生成一个文件夹,与py文件同名,在该文件夹下会有一个同名的可执行文件,直接执行即可。


若是打包不成功,一般是缺少动态链接库文件,在环境变量里指定即可。

目前遇到的坑暂时就这么多。

摸索了一天弄清楚,感觉也是不易,记下以免后续浪费时间。

最开心的事就是又搞明白了一个问题,每天学一点点!

你可能感兴趣的:(linux)