zoukankan      html  css  js  c++  java
  • centos部署Python环境

    在centos上部署Python之前,我们需要先配置开发环境。

    1.安装Python依赖的开发工具包

      gcc自然少不了,可以直接用“Development Tools”:

    yum grouplist    #查看可安装的包
    yum groupinstall "Development tools"    #含有空格用引号括起来
    whereis gcc    #查看gcc安装位置
    gcc --version    #查看gcc安装版本
    

      还有其他一些依赖包

    install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
    
    #zlib-devel 
    #bzip2-devel 
    #openssl-devel 
    #ncurses-devel 
    #sqlite-devel 
    #readline-devel 
    #tk-devel
    

      

    2.安装最新Python3.6

      查看安装的Python信息:

    python -V
    

      然后查看一下Python可执行文件的位置:

    which python

    #输出:/usr/bin/python

      进入到bin目录,查看python文件:

    cd /usr/bin
    
    ls -al python*
    
    输出:
    lrwxrwxrwx. 1 root root    7 Dec 20  2016 python -> python2
    lrwxrwxrwx. 1 root root    9 Dec 20  2016 python2 -> python2.7
    -rwxr-xr-x. 1 root root 7136 Nov  6  2016 python2.7
    #可以看到可执行文件python指向python2,python2又指向python2.7也就是说Python命令执行的系统预装的Python2.7。

       要安装Python的其他版本先执行mv python python.bak命令备份python文件。

    mv python python.bak

    [root@jdu4e00u53f7 bin]# ls python*
    python2 python2.7 python.bak

      安装新版本的Python:

      

    # cd /usr/local/src    #回到src目录
    # wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz    #下载最新python
    # tar -zxvf Python-3.6.3.tgz     #解压缩到当前路径
    

      ps:国内官网下载python网速非常慢,可以先在其他地方下载下来再上传至服务器

      加压缩之后该目录下出现Python-3.5.1文件夹,进入到文件夹下执行编译安装。

    cd Python-3.6.3
    # ./configure --prefix=/usr/local/python/python3
    # make && make altinstall
    

    执行 ./configure --prefix=/usr/local/python/python3 命令。./configure命令执行完毕之后创建一个文件creating Makefile,供下面的make命令使用 执行make install之后就会把程序安装到我们指定的目录中去。

    Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。

    其中--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放
    在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

    如果配置--prefix,如:
    ./configure --prefix=/usr/local/test
    可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。
    用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,
    就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。

    当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。

    然后执行make、make install命令。

    安装成功之后进入到python3文件夹可以看到Python的可执行文件目录、lib目录等相关目录。

      ps:有个一个非常重要的步骤是我们使用的是make altinstall。如果使用make install,你将会看到在系统中有两个不同版本的Python在/usr/bin/目录中。这将会导致很多问题,而且不好处理。

    [root@jdu4e00u53f7 python3]# ls -l
    total 0
    drwxr-xr-x 2 root root 169 Nov 13 22:10 bin
    drwxr-xr-x 3 root root  24 Nov 13 22:10 include
    drwxr-xr-x 4 root root  63 Nov 13 22:10 lib
    drwxr-xr-x 3 root root  17 Nov 13 22:10 share
    

      这样Python3.6就默认安装到了/usr/local/python/python3、bin,libpython3.6.so这个库安装到了/usr/local/python/python3/lib下面,但是现在Python 3.6还无法启动,因为默认的共享库加载路径还没有指向libpython3.6.so所在的目录。

      

      新增Python 3.5共享库加载路径:

      需要把 /usr/local/python/python3/lib 保存到配置文件中,保存在 /etc/ld.so.conf.d中 ,并执行ldconfig命令:

    # echo "/usr/local/python/python3/lib" >> /etc/ld.so.conf
    # ldconfig
    

      安装Python3.6至 /usr/local/bin/,创建软连接

    # ln -s /usr/local/python/python3/bin/python3.6 /usr/bin/python
    

      确认是否安装正确

    [root@jdu4e00u53f7 bin]# python -V
    Python 3.6.3
    [root@jdu4e00u53f7 bin]# python
    Python 3.6.3 (default, Nov 13 2017, 22:08:41) 
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    

      至此,python就安装成功了。但是这时yum一般会出问题,这是只要编辑/usr/bin/yum和/usr/libexec/urlgrabber-ext-down这两个文件

    vi /usr/bin/yum
    
    vi /usr/libexec/urlgrabber-ext-down
    

      修改这两个文件的头部#!/usr/bin/python改成#!/usr/bin/python2 现在再去测试一下yum基本都可用了。

    3.安装python所需库  

      安装Easy_Install

    # cd /usr/local/src
    # wget https://pypi.python.org/packages/source/s/setuptools/setuptools-18.0.1.zip
    使用镜像路径下载:
    # wget http://pypi.doubanio.com/packages/0f/22/7fdcc777ba60e2a8b1ea17f679c2652ffe80bd5a2f35d61c629cb9545d5e/setuptools-36.7.2.zip
    # unzip setuptools-36.7.2.zip
    # cd setuptools-36.7.2
    # /usr/bin/python setup.py install
    # mv /usr/bin/easy_install /usr/bin/easy_install.bak
    # ln -s /usr/local/python/python3/bin/easy_install /usr/bin/easy_install
    

      尝试运行easy_install报错;

    Traceback (most recent call last):
      File "/usr/bin/easy_install", line 11, in <module>
        load_entry_point('setuptools==36.7.2', 'console_scripts', 'easy_install')()
      File "/usr/local/python/python3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 565, in load_entry_point
        return get_distribution(dist).load_entry_point(group, name)
      File "/usr/local/python/python3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2631, in load_entry_point
        return ep.load()
      File "/usr/local/python/python3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2291, in load
        return self.resolve()
      File "/usr/local/python/python3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2297, in resolve
        module = __import__(self.module_name, fromlist=['__name__'], level=0)
      File "/usr/local/python/python3/lib/python3.6/site-packages/setuptools-36.7.2-py3.6.egg/setuptools/command/easy_install.py", line 47, in <module>
      File "/usr/local/python/python3/lib/python3.6/site-packages/setuptools-36.7.2-py3.6.egg/setuptools/sandbox.py", line 15, in <module>
    ModuleNotFoundError: No module named 'pkg_resources.py31compat'
    

      可能是安装了两个版本的setuptools,先不管,接着安装pip

      安装Pip

    $ cd /usr/local/src
    # 下载源代码
    $ wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
    $ tar -zvxf 9.0.1.tar.gz   # 解压文件
    $ cd pip-9.0.1
    # 使用 Python 3 安装
    $ python setup.py install
    

      卸载easy_install,并删除site-packages下的egg文件

    pip uninstall setuptools
    rm setuptools-36.7.2-py3.6.egg

      重新安装

    # cd setuptools-36.7.2
    # /usr/bin/python setup.py install
    

      安装成功,运行不再报错了。

      参考:http://moelove.info/2017/06/30/Install-Python3-6-on-CentOS7/

         https://github.com/pypa/setuptools/issues/1167

          

  • 相关阅读:
    程序员怎么提高英语阅读水平【转】
    Linux后台执行【转】
    pcre安装错误的解决方法
    编译PHP错误:undefined reference to `ts_resource_ex'
    apache2启动时共享库libpcre找不到
    设置Ubuntu的IP地址
    vsftp 的应用
    用Python实现动态的切换桌面背景
    DNN 4.x CodeSmith模板
    如何在DNN中使用Google Analytics
  • 原文地址:https://www.cnblogs.com/crazytao/p/7827905.html
Copyright © 2011-2022 走看看