CentOS 7.2 安装 python3 + wxpy

本文主要阐述如何在centos7.2上搭建Python3的开发环境,目的是为了在Linux环境运行基于wxpy的Python程序。

一、安装Python3

CentOS7.2 自带有 python,但是却是 python2 版本的 python,Python2.7的版本(Python2.7会在2020年12月份停止维护)。所以现在开发Python的程序,都是推荐使用Python3来开发的。所以必须得给centos7.2装上python3,怎么装?

 

1.1、centos现在的Python装在哪里?

[root@VM_0_8_centos ~]# whereis python

[root@VM_0_8_centos ~]# cd /usr/bin/
[root@VM_0_8_centos bin]# ll python*

CentOS 7.2 安装 python3 + wxpy_第1张图片

可以看到,python指向的是python2,python2指向的是python2.7,两个版本的python是共存的。

 

1.2、下载Python3解压并编译安装

因为 yum 源中并没有现成的 python3 程序,所以必须要自己手动编译安装。

1.2.1、先安装相关包,用于下载编译python3:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 

1.2.2、安装pip

#运行这个命令添加epel扩展源
yum -y install epel-release

#安装pip
yum install python-pip

1.2.3、用pip装wget

pip install wget

1.2.4、用wget下载python3的源码包

Python3的下载地址:https://www.python.org/downloads/source/

CentOS 7.2 安装 python3 + wxpy_第2张图片

右键,赋值包的下载地址,输入以下命令:

wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz

也可以去这里下载:https://www.python.org/ftp/python/

1.2.5、编译python3源码包

#解压
xz -d Python-3.7.3.tar.xz
tar -xf Python-3.7.3.tar

#进入解压后的目录
cd Python-3.7.3

#依次执行下面命令进行手动编译
./configure prefix=/usr/local/python3
make && make install

如果最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录。

笔者遇到的安装错误是:ModuleNotFoundError: No module named ‘_ctypes’

CentOS 7.2 安装 python3 + wxpy_第3张图片

Python3.7版本需要一个新的包libffi-devel,安装此包之后再次进行编译安装即可。解决办法: 

#yum install libffi-devel -y
#make install

1.3、添加软链接

两个方案:

1.3.1、如果希望Python程序都使用Python3来运行,可以这样操作:

将原来的软链接“/usr/bin/python”指向“/usr/local/python3/bin/python3.7”,根据下方的命令操作即可:

#将原来的链接备份
mv /usr/bin/python /usr/bin/python.bak

#添加python3的软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python

#测试是否安装成功了
python -V

1.3.1.1、更改yum配置

因为yum是用Python2写的,所以需要把yum涉及的Python版本改为Python2,否则yum将不能正常使用。

vi /usr/bin/yum
把#! /usr/bin/python修改为#! /usr/bin/python2

vi /usr/libexec/urlgrabber-ext-down
把#! /usr/bin/python 修改为#! /usr/bin/python2

以上内容,参考了:https://blog.csdn.net/lovefengruoqing/article/details/79284573

 

1.3.2、建立一个Python3的软链接,

#添加python3的软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3

#测试是否安装成功了
python3 -V

建立软链接后,可以看到在“/usr/bin/” 下面多了python3

CentOS 7.2 安装 python3 + wxpy_第4张图片

如果是在执行Python命令时,更习惯于Python3这样的来执行,在py文件头添加下面两行代码即可:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

 在交互命令环境下,则使用Python3来进入Python环境。

 

二、安装wxpy

2.1、使用pip安装

pip install wxpy

可以提前告诉你,这样直接安装wxpy,基于wxpy的Python3的代码运行时会报错!

为什么呢?这是因为Python3的目录下没有wxpy这个包,wxpy被安装到Python2.7的目录下了!

 

2.1.1、(推荐)指定安装到Python3.7的目录:

pip install --target=/usr/local/python3/lib/python3.7/site-packages wxpy

2.1.2、(推荐)你也可以通过下面命令,建立一个Python3.7下面pip的软链接,然后使用pip3来安装wxpy

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
#使用pip3来安装wxpy
pip3 install wxpy

2.1.3、你也可以修改pip的内容(其路径为:usr/bin/pip),其原始内容为:

#!/usr/bin/python2

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

如果之前在安装完Python3之后,建立了“/usr/local/python3/bin/python3.7”的软链接为python3,则可以将首行代码改为:

#!/usr/bin/python3

如果之前在安装完Python3之后,将原来的软链接“/usr/bin/python”改成了Python3,则可以将首行代码改为:

#!/usr/bin/python

 

 

2.2、运行Python程序报错

在运行基于wxpy库的程序时,报错了!但是wxpy程序在Windows上跑的还好好的,所以肯定代码没问题!

 

2.2.1、缺少 requests 库

Python: ImportRequestsError: No module named 'requests'

这个问题比较坑,网上也找了很多方法。例如下面这种(运行程序时,还是提示这个错误)

wget https://bootstrap.pypa.io/get-pip.py
python  get-pip.py
pip install requests

其实,Python的pip具有自动下载的功能,会将安装包自动放置到lib目录,只要是安装Python自己的库,都可以实现。

解决方案也很简单:

python -m pip install requests

安装完后,可以通过代码进行测试一下,进入Python环境,逐行输入以下代码:

import requests
r=requests.get("http://www.baidu.com")
r.encoding='utf-8'
r.text

2.3、后台运行,常驻内存

在centos后台运行python文件,用shell或终端执行命令ssh来运行python时,断开连接的时候程序也关闭了,这时候就需要:

#setsid python3 xxx.py

要进入到文件夹再运行。在进程中,程序会一直运行,是不受连接断开的影响的;

查看是否在进程中:

ps aux | grep .py

其中grep是搜索的意思,搜索含有.py的进程

如果要关闭这个进程

#kill -9 [PID]
-9 表示强迫进程立即停止
kill -9 7029

 

你可能感兴趣的:(Linux,Python)