python模块的安装

最近应产品部要求,需要将所有服务器上的python升级到3.6,并且安装两个模块:PyMsql和pandas,下边将安装步骤及踩过的坑分享一下。
1.首先想用常规的安装方式进行安装,即用模块包安装。
(模块包下载,百度搜索pypi即可找到)
pymysql模块:

解压压缩包 tar zxvf PyMySQL-0.7.5.tar.gz
进入目录 cd PyMySQL-0.7.5/
构建pyd文件python3 setup.py build
安装模块python3 setup.py install

然后进入python命令行进行测试

[root@localhost ~]# python
Python 3.6.2 (default, Oct 18 2019, 10:10:43) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymysql
>>> (没返回报错证明成功了)

pandas模块,由于numpy是pandas的依赖库,因此需要先安装numpy模块。

解压文件 tar xvf numpy-1.17.tar
进入文件夹 cd numpy-1.17.2/
构建pyd文件 python3 setup.py build
安装 python3 setup.py install

然后安装pandas模块

解压文件 tar zxvf pandas-0.25.1.tar.gz
进入文件夹 cd pandas-0.25.1/
构建pyd文件 python3 setup.py build
安装 python3 setup.py install

安装pandas模块时,总是提示缺少依赖的包,最后决定使用pip这个python工具进行安装

1)安装pip(redhat6安装pip见:https://blog.csdn.net/weixin_43279032/article/details/102853002)

yum -y install epel-release(安装epel扩展源)

yum -y install python-pip(安装pip)

2)按装模块pandas

pip install pandas

报错:

Collecting pandas
  Downloading https://files.pythonhosted.org/packages/07/cf/1b6917426a9a16fd79d56385d0d907f344188558337d6b81196792f857e9/pandas-0.25.1.tar.gz (12.6MB)
100% |████████████████████████████████| 12.6MB 59kB/s 
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-oJZl2i/pandas/setup.py", line 21, in <module>
    import versioneer
  File "versioneer.py", line 1629
    print("Adding sample versioneer config to setup.cfg", file=sys.stderr)
                                                              ^
SyntaxError: invalid syntax

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-oJZl2i/pandas/
You are using pip version 8.1.2, however version 19.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

根据提示,升级pip

pip install --upgrade pip

再次安装pandas后成功

pip install  pandas

3)测试

[root@yzftp02 ~]# python
Python 3.6.2 (default, Oct 18 2019, 10:00:28) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pandas'
>>> 

发现,虽然安装成功了,但是显示没有次模块,原因是pandas模块安装到了python2版本上

[root@yzftp02 ~]# python2.7
Python 2.7.5 (default, Jul 13 2018, 13:06:57) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
>>> 

分析原因:查看pip应用程序

[root@yzftp02 ~]# cat /usr/bin/pip
#!/usr/bin/python2

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

from pip._internal.main import main

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

因为我们安装模块时用的pip的默认解释器为python2,所以模块默认安装到了python2上
解决办法:修改pip程序的解释器

[root@localhost ~]# cat /usr/bin/pip
#!/usr/bin/python(升级后的python3版本)

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

from pip import main(此处内容也改了)

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

然后重新安装模块:

[root@yzftp02 ~]# pip install pandas

报错:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting pandas
  Cache entry deserialization failed, entry ignored
  Could not fetch URL https://pypi.python.org/simple/pandas/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement pandas (from versions: )
No matching distribution found for pandas

解决:ssl证书没有认证,那摩就用国内镜像安装

pip install pandas -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

结果成功了,再次进行测试,发现还有报错,不过内容变化了

[root@yzftp02 ~]# python
Python 3.6.2 (default, Oct 18 2019, 10:00:28) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Python3/lib/python3.6/site-packages/pandas/__init__.py", line 55, in <module>
    from pandas.core.api import (
File "/usr/local/Python3/lib/python3.6/site-packages/pandas/core/api.py", line 24, in <module>
    from pandas.core.groupby import Grouper, NamedAgg
File "/usr/local/Python3/lib/python3.6/site-packages/pandas/core/groupby/__init__.py", line 1, in <module>
    from pandas.core.groupby.generic import (  # noqa: F401
File "/usr/local/Python3/lib/python3.6/site-packages/pandas/core/groupby/generic.py", line 44, in <module>
    from pandas.core.frame import DataFrame
File "/usr/local/Python3/lib/python3.6/site-packages/pandas/core/frame.py", line 88, in <module>
    from pandas.core.generic import NDFrame, _shared_docs
File "/usr/local/Python3/lib/python3.6/site-packages/pandas/core/generic.py", line 70, in <module>
    from pandas.io.formats.format import DataFrameFormatter, format_percentiles
File "/usr/local/Python3/lib/python3.6/site-packages/pandas/io/formats/format.py", line 48, in <module>
    from pandas.io.common import _expand_user, _stringify_path
File "/usr/local/Python3/lib/python3.6/site-packages/pandas/io/common.py", line 3, in <module>
    import bz2
File "/usr/local/Python3/lib/python3.6/bz2.py", line 23, in <module>
from _bz2 import BZ2Compressor, BZ2Decompressor
ModuleNotFoundError: No module named '_bz2'

从报错内容可以推断,系统缺少了一些依赖的库,解决办法如下:

1)在操作系统中安装zlib和bz2相关库

yum install zlib zlib-devel

yum -y install bzip2 bzip2-devel ncurses openssl openssl-devel openssl-static xz lzma xz-devel sqlite sqlite-devel gdbm gdbm-devel tk tk-devel libffi-devel

2)重新编译安装python3

./configure -prefix=/usr/local/Python3 --enable-optimizations (此参数不可少)
make
make install

此过程时间较长,请耐心等待。。。。。。。
安装完成后再次进行测试:

[root@yzftp02 ~]# python
Python 3.6.2 (default, Oct 18 2019, 17:11:22) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
>>> 

成功了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值