centOS7 系统使用笔记

1、我首先需要安装一个python3

(1)参考教程:

https://www.cnblogs.com/simuhunluo/p/7704765.html

(2)查看Centos7中已有的python以及链接

(3)备份

mv python python.bak

(4)下载、解压、解析

mkdir /usr/local/python3
cd /usr/local/python3
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
tar -xvf Python-3.6.3.tgz 
cd Python-3.6.3/
./configure --prefix=/usr/local/python3Dir
make
make install

(5)报错1

在执行到make install的时候,我报了一个错误

if test "xupgrade" != "xno"  ; then \
	case upgrade in \
		upgrade) ensurepip="--upgrade" ;; \
		install|*) ensurepip="" ;; \
	esac; \
	 ./python -E -m ensurepip \
		$ensurepip --root=/ ; \
fi
Traceback (most recent call last):
  File "/usr/local/python3/Python-3.6.3/Lib/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/local/python3/Python-3.6.3/Lib/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/python3/Python-3.6.3/Lib/ensurepip/__main__.py", line 4, in <module>
    ensurepip._main()
  File "/usr/local/python3/Python-3.6.3/Lib/ensurepip/__init__.py", line 189, in _main
    default_pip=args.default_pip,
  File "/usr/local/python3/Python-3.6.3/Lib/ensurepip/__init__.py", line 102, in bootstrap
    _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
  File "/usr/local/python3/Python-3.6.3/Lib/ensurepip/__init__.py", line 27, in _run_pip
    import pip
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1

查询之后发现,大多解决方法都是建议安装zlibc zlib1g-dev包

yum install zlib zlib-devel -y

然后我再执行安装的手又除了一个错误

[root@iZbp12hx8zhd9a1zbskglpZ Python-3.6.3]# yum -y install zlib*
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

查询之后得出结论:

我的系统默认是python2.7

cd /usr/bin # 进入yum的目录
vim yum

然后将第一行的python改成python2.7

在执行yum就可以了

再次执行就可以了

(6)再次编译python3

cd /usr/local/python3/Python-3.6.3
make install

但是任旧是这个错误,并没有解决

(7)仔细查看yum的安装,我发现yum安装包的时候其实是有包没有安装上的

Error downloading packages:
  httpd-2.4.6-67.el7.centos.6.x86_64: [Errno 5] [Errno 2] 没有那个文件或目录

查找之后找到一个相同的错误:

https://blog.51cto.com/chaichuan/2083574

所以在修改了这次修改了两个文件当中的python头到python2.7

/usr/bin/yum
/usr/libexec/urlgrabber-ext-down
#! /usr/bin/env python2.7

(8)再次执行

yum安装成功

python3make成功

(9)查看结果与教程相同

2、yum配置(在后面我发现,yum如果版本改到了pyhton3会出现import yum错误,所以这一步不需要执行

因为我们将系统的python改成了python2,yum是需要python的支持的

如果我们保持上面的设置,yum的第一行的python支持保持在python2.7的话,之后的运行中,我们需要使用命令

python2.7 yum

但是在虚拟环境python3中,这个不可行的,所以我们需要修改一下yum的支持

vim /usr/bin/yum

修改支持为python,默认python3

修改报错的代码,为图中所示

另外还要将/usr/libexec/urlgrabber-ext-down中的内容也修改一下

vim /usr/libexec/urlgrabber-ext-down

修改的地方也是第一行的python2.7改成python

然后代码中的except 中的逗号改成as

3、然后我们需要创建一个虚拟环境

教程

https://www.cnblogs.com/guohewei/p/10124277.html

(1)安装虚拟环境

pip3 install virtualenv
pip3 install virtualenvwrapper

(2)查看virtualenvwrapper.sh的路径

(4)修改bashrc文件

export WORKON_HOME=$HOME
source /usr/local/bin/virtualenvwrapper.sh

(4)执行

source ~/.bashrc

(5)报错

[root@iZbp12hx8zhd9a1zbskglpZ ~]# source ~/.bashrc
/usr/local/bin/python: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
virtualenvwrapper.sh: There was a problem running the initialization hooks.

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is
set properly.

根据错误提示,我在bashrc文件中增加了

VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python

然后任旧报错。

我的/usr/local/bin/python是软连接指向/usr/bin/python,我的/usr/bin/python又是软连接指向python3

然后改成了python3,让他直接指向python3.6

VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

但是人就报错,最后我改成了python3.6,终于成功了!!!!!!!!!

VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.6

4、创建虚拟环境文件夹

 mkvirtualenv py3-env

5、导入数据包

因为git命令没有安装,然后yum又出问题了

所以我就使用Xfit直接传文件了

(1)获取文件

是一个tar的压缩包

(2)解压

(3)安装数据包,就是pip

(4)运行程序

然后报错了

(py3-env) [root@iZbp12hx8zhd9a1zbskglpZ text_detection-master]# python run_app_dev.py 
Traceback (most recent call last):
  File "run_app_dev.py", line 6, in <module>
    from flask_cors import CORS
  File "/root/py3-env/lib/python3.6/site-packages/flask_cors/__init__.py", line 11, in <module>
    from .decorator import cross_origin
  File "/root/py3-env/lib/python3.6/site-packages/flask_cors/decorator.py", line 13, in <module>
    from flask import make_response, request, current_app
  File "/root/py3-env/lib/python3.6/site-packages/flask/__init__.py", line 21, in <module>
    from .app import Flask, Request, Response
  File "/root/py3-env/lib/python3.6/site-packages/flask/app.py", line 25, in <module>
    from . import cli, json
  File "/root/py3-env/lib/python3.6/site-packages/flask/cli.py", line 18, in <module>
    import ssl
  File "/usr/local/lib/python3.6/ssl.py", line 101, in <module>
    import _ssl             # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'

(5)尝试1:

教程:https://blog.csdn.net/qq_26870933/article/details/84336109

cd /usr/local/python3/Python-3.6.3

cd Modules/

vim Setup

vim Setup.dist

cd .. # 回到Python-3.6.3目录
./configure --prefix=/usr/local/python3Dir
make
make install

在make的时候报错

d=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers   -I. -I./Include    -DPy_BUILD_CORE  -DUSE_SSL -I/usr/local/ssl/include -I/usr/local/ssl/include/openssl -c ./Modules/_ssl.c -o Modules/_ssl.o
./Modules/_ssl.c:67:25: fatal error: openssl/rsa.h: No such file or directory
 #include "openssl/rsa.h"
                         ^
compilation terminated.
make: *** [Modules/_ssl.o] Error 1

(6)教程

https://www.cnblogs.com/sxdcgaq8080/p/8038586.html

执行yum安装命令。出现yum错误

Traceback (most recent call last):
  File "/usr/bin/yum", line 4, in <module>
    import yum
ModuleNotFoundError: No module named 'yum'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/yum", line 6, in <module>
    print >> sys.stderr, """\
TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and '_io.TextIOWrapper'. Did you mean "print(<message>, file=<output_stream>)"?

考虑到这个错误可能是由于python3里面没有yum的包,所以我把yum和urlgrabber-ext-down文件中的文件头任旧改回python2.7,然后中间except的as也改回逗号。

然后yum执行成功。

然后make成功

make install成功 

(7)进入虚拟环境运行程序

然后"_ssl"错误任然存在

发现不再虚拟环境的时候python3.6的python直接import ssl是可以的

但是虚拟环境的时候又不可以了

然后找不到问题

最后换了一个虚拟环境创建命令

virtualenv venv  #venv为虚拟环境目录名,目录名自定义

然后以上问题解决啦~~~~~~~

虽然不知道为什么用mkvirtualenv 创建的虚拟环境不行,但是virtualenv 创建的可以。

(8)运行程序

在我pip号所有包,然后改好里面用到的绝对路径

然后运行程序

然后报错了

  File "/usr/local/program/text_detection-master/app/detection/detection_api.py", line 15, in <module>
    from app.models import IdCard, IdCardBack, BankCard, BusinessLicense
  File "/usr/local/program/text_detection-master/app/models.py", line 4, in <module>
    import cv2
  File "/root/py3-venv/lib/python3.6/site-packages/cv2/__init__.py", line 3, in <module>
    from .cv2 import *
ImportError: libSM.so.6: cannot open shared object file: No such file or directory

然后我按照教程走了一遍

https://www.cnblogs.com/richerdyoung/p/8458910.html

yum whatprovides libSM.so.6

yum install libSM-1.2.2-2.el7.x86_64 --setopt=protected_multilib=false

没有报错,以上问题解决了,但是又出了新问题

>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/root/py3-venv/lib/python3.6/site-packages/cv2/__init__.py", line 3, in <module>
    from .cv2 import *
ImportError: libXrender.so.1: cannot open shared object file: No such file or directory

我参考了好几个教程,执行了这些步骤

yum install libxrender1 #系统环境
pip3 install --upgrade setuptools #虚拟环境
pip3 install numpy Matplotlib #虚拟环境
pip3 install opencv-python #虚拟环境
yum -y install epel-release #系统环境
yum  install  numpy  opencv* #系统环境

然后反正就安装成功了,执行查看命令

yum whatprovides libXrender.so.1

并且在虚拟环境里面import成功了

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值