• Python virtualenv虚拟环境


    在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。

    如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?

    这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

    首先,我们用pip安装virtualenv:

    [root@bogon ~]# pip3 install virtualenv
    Collecting virtualenv
    Downloading https://files.pythonhosted.org/packages/8b/12/8d4f45b8962b03ac9efefe5ed5053f6b29334d83e438b4fe379d21c0cb8e/virtualenv-16.7.5-py2.py3-none-any.whl (3.3MB)
    |████████████████████████████████| 3.3MB 615kB/s
    Installing collected packages: virtualenv
    Successfully installed virtualenv-16.7.

    安装完成后可以查看一下

    [root@bogon bin]# ls
    2to3 django-admin.py idle3.6 pip3.6 python3 python3.6m-config uwsgi wsdump.py
    2to3-3.6 docker-compose jsonschema __pycache__ python3.6 python3-config uwsgi.log
    chardetect easy_install-3.6 pip pydoc3 python3.6-config pyvenv uwsgi.pid
    django-admin idle3 pip3 pydoc3.6 python3.6m pyvenv-3.6 virtualenv

    安装完成后使用virtualenv --version查看版本

    [root@bogon bin]# virtualenv --version
    bash: virtualenv: 未找到命令...
    [root@bogon bin]#

    淡定,因为我用的不是自带的Python2,用的3,yum这些需要用的是Python2,所以我的默认还是Python2

    接下来添加软连接

    [root@bogon bin]# ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualevn
    [root@bogon bin]# virtualevn --version
    16.7.5
    [root@bogon bin]#

    搞定

    然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:

    第一步,创建目录:

    [root@bogon shaobo]# mkdir ven

    第二步,创建一个独立的Python运行环境,命名为venv

     唉,折腾了好久一直不行提示那个configparser模块找不到,没有办法

    只能重新安装Python了

    先把之前的卸载干净,删除方法,我是将所有的文件全部删除了


    1.先安装一些我遇到的依赖问题(如果有依赖问题按提示安装):
    yum -y groupinstall "Development tools"
    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

    2.官网下载源码包
    wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz


    3.解压文件
    xz -d Python-3.7.1.tar.xz
    tar -xvf Python-3.7.1.tar


    4.进入文件目录
    cd Python-3.7.1
     
    5.开始安装编译
    ./configure --prefix=/usr/local/python3.7
    make
    make install

    6.让centos7 使用python3.7

    ln -s /usr/local/python3.7/bin/python3 /usr/bin/python3

    ln -s /usr/local/python3.7/bin/pip3 /usr/bin/pip3

    到此安装完成。

     重复上边安装virtualenv

    pip3 install virtualenv

    这个我也不知道是啥,参考别人的

    pip3 install gunicorn

    [root@bogon testvenv]# virtualenv --no-site-packages -p /usr/bin/python3 venv
    Running virtualenv with interpreter /usr/bin/python3
    Already using interpreter /usr/bin/python3
    Using base prefix '/usr/bin/python3.7'
    New python executable in /opt/shaobo/testvenv/venv/bin/python3
    Also creating executable in /opt/shaobo/testvenv/venv/bin/python
    Installing setuptools, pip, wheel...
    done.
    [root@bogon testvenv]# ls

    搞定了激动哟

    第三步:激活虚拟环境

    先进入bin目录

    [root@bogon venv]# cd bin/
    [root@bogon bin]# ls
    activate activate.fish activate_this.py easy_install pip pip3.7 python3 python-config
    activate.csh activate.ps1 activate.xsh easy_install-3.7 pip3 python python3.7 wheel

    然后激活虚拟环境

    [root@bogon bin]# source ./activate
    (venv) [root@bogon bin]#

    我们尝试安装一个request

    (venv) [root@bogon bin]# pip3 install request
    Collecting request
    Downloading https://files.pythonhosted.org/packages/f1/27/7cbde262d854aedf217061a97020d66a63163c5c04e0ec02ff98c5d8f44e/request-2019.4.13.tar.gz
    Collecting get (from request)

    然后我们进入site_packages中查看安装的模块

    (venv) [root@bogon python3.7]# cd site-packages/
    (venv) [root@bogon site-packages]# ls
    easy_install.py pkg_resources __pycache__ setuptools
    get post query_string setuptools-41.2.0.dist-info
    get-2019.4.13.dist-info post-2019.4.13.dist-info query_string-2019.4.13.dist-info wheel
    pip public request wheel-0.33.6.dist-info
    pip-19.2.3.dist-info public-2019.4.13.dist-info request-2019.4.13.dist-info
    (venv) [root@bogon site-packages]#

    退出虚拟环境

    (venv) [root@bogon bin]# deactivate
    [root@bogon bin]#

    ok,结束了!

  • 相关阅读:
    自己实现的string的库函数
    单链表的面试题
    顺序表的实现
    指针数组与数组指针
    指针与数组
    sizeof 与 strlen
    HTML配色工具!在线配色工具
    [转载] python的sorted函数对字典按key排序和按value排序
    [转载]python脚本删除一定时间以外的文件
    python基础教程(四)
  • 原文地址:https://www.cnblogs.com/leslie003/p/11499041.html
Copyright © 2020-2023  润新知