本文主要阐述了如何在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~] # where is python
[root@VM_0_8_centos ~]# cd /usr/明亮的飞鸟/
[root@VM_0_8_centos明亮的鸟]# ll python*
可以看到,python指向python2,python2指向python2.7,这两个版本的python是共存的。
1.2、下载并解压缩Python3,编译安装
yum源代码没有现成的python3程序,所以必须自己手动编译和安装。
1.2.1、python3,首先安装相关软件包进行下载和编译:
yuminstallzlib-devel bzip2-devel OpenSSL-devel ncurses-devel SQLite-devel readline-devel tk-develgccmake
1.2.2、pip的安装
#运行此命令以添加epel扩展源代码
yum-y安装电子邮件- 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 /
右键单击以分配软件包的下载位置,然后输入以下命令:
wget 3359 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/python 3
生成安装
如果最后没有显示错误,则表示安装正确,并且python3目录位于/usr/local/目录下。
笔者遇到的安装错误是modulenotfounderror : nomodulenamed“_ ctypes”
Python3.7版本需要新的软件包libffi-devel。 安装此软件包后,请重新编译并安装。 解决方案:
#yum install libffi-devel -y
# make安装
1.3、添加软链接
两种方案:
1.3.1、如果要在Python3上运行所有Python程序,请执行以下操作:
将原来的软链接“/usr/明亮的飞鸟/python”指向“/usr/local/python3/明亮的飞鸟/python3.7”,按照以下命令操作即可。
#备份原始链接
mv /usr/明亮的飞鸟/python /usr/明亮的飞鸟/python.bak
添加python3的软链接
ln -s /usr/local/python3/明亮飞鸟/python3.7 /usr/明亮飞鸟/python
#测试安装是否成功
python -V
1.3.1.1、变更yum配置
因为yum是用Python2写的,所以需要将yum涉及的Python的版本更改为Python2。 如果不更改,yum将无法正常使用。
vi /usr/明亮的飞鸟/yum
#! /usr/明亮的飞鸟/python! /usr/明亮的飞鸟/python2
VI/usr/libexec/urlgrabber-ext-down
#! /usr/明亮的飞鸟/python! /usr/明亮的飞鸟/python2
以上
内容,参考了:https://blog.csdn.net/lovefengruoqing/article/details/792845731.3.2、建立一个Python3的软链接,
#添加python3的软链接
ln -s /usr/local/python3/明亮的飞鸟/python3.7 /usr/明亮的飞鸟/python3
#测试是否安装成功了
python3 -V
建立软链接后,可以看到在“/usr/明亮的飞鸟/” 下面多了python3
如果是在执行Python命令时,更习惯于Python3这样的来执行,在py文件头添加下面两行代码即可:
#!/usr/明亮的飞鸟/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/明亮的飞鸟/pip3 /usr/明亮的飞鸟/pip3
#使用pip3来安装wxpy
pip3 install wxpy
2.1.3、你也可以修改pip的内容(其路径为:usr/明亮的飞鸟/pip),其原始内容为:
#!/usr/明亮的飞鸟/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/明亮的飞鸟/python3.7”的软链接为python3,则可以将首行代码改为:
#!/usr/明亮的飞鸟/python3
如果之前在安装完Python3之后,将原来的软链接“/usr/明亮的飞鸟/python”改成了Python3,则可以将首行代码改为:
#!/usr/明亮的飞鸟/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