• (转载)Python系列之开发环境【venv】


    转载地址:Python系列之开发环境【venv】 - 知乎 (zhihu.com)

    1. venv介绍

    venv是python3.3及以后的版本中新增的虚拟环境管理工具包,用于取代之前的virtualenv,因此不用通过pip install venv再去安装。

    2. venv基本操作

    • 2.1 首先,创建虚拟环境

    在我的账号家目录下,创建空的文件夹,然后在新建文件夹下,利用venv创建项目根目录env。可以发现在env目录下,有3个文件夹和1一个文件。

    其中bin目录用于保存项目运行相关的启动脚本,lib目录用于保存本项目依赖的系统库和第三方库,include用于保护项目依赖的c头文件(一般为空),剩下的pyenv.cfg顾名思义就是虚拟环境的配置文件。

    wen.cao@MBC02XD15UJGH7 ~ % mkdir DemoPython
    wen.cao@MBC02XD15UJGH7 ~ % cd DemoPython 
    wen.cao@MBC02XD15UJGH7 DemoPython % 
    wen.cao@MBC02XD15UJGH7 DemoPython % python3 -m venv env
    wen.cao@MBC02XD15UJGH7 DemoPython % ls -l
    total 0
    drwxr-xr-x  6 wen.cao  656741719  192  7 24 22:41 env
    wen.cao@MBC02XD15UJGH7 DemoPython % ls -l env 
    total 8
    drwxr-xr-x  13 wen.cao  656741719  416  7 24 22:41 bin
    drwxr-xr-x   2 wen.cao  656741719   64  7 24 22:41 include
    drwxr-xr-x   3 wen.cao  656741719   96  7 24 22:41 lib
    -rw-r--r--   1 wen.cao  656741719  104  7 24 22:41 pyvenv.cfg
    • 2.2 紧接着,我们需要激活虚拟环境

    在激活以后,前面就出现了(env)提示符,表示激活成功。另外,激活后的python解释器和pip的位置就变成虚拟环境的了,而不是操作系统默认的路径。

    wen.cao@MBC02XD15UJGH7 DemoPython % source env/bin/activate
    (env) wen.cao@MBC02XD15UJGH7 DemoPython %
    (env) wen.cao@MBC02XD15UJGH7 DemoPython % which python
    /Users/wen.cao/DemoPython/env/bin/python
    (env) wen.cao@MBC02XD15UJGH7 DemoPython % which python3
    /Users/wen.cao/DemoPython/env/bin/python3
    (env) wen.cao@MBC02XD15UJGH7 DemoPython % which pip 
    /Users/wen.cao/DemoPython/env/bin/pip
    (env) wen.cao@MBC02XD15UJGH7 DemoPython % which pip3
    /Users/wen.cao/DemoPython/env/bin/pip3
    • 2.3 虚拟环境的包管理

    可以发现,正常激活后,操作系统下的python包,并没有带进虚拟环境,这一点对于我们很有用,因为任何一个python项目依赖的包其实是不一样的,这也是venv存在的意义。

    当然,我们可以在虚拟环境安装自己的包,此时的包是不会影响到操作系统或者其他虚拟环境的。

    (env) wen.cao@MBC02XD15UJGH7 DemoPython % pip list
    Package    Version
    ---------- -------
    pip        19.2.3 
    setuptools 41.2.0 
    WARNING: You are using pip version 19.2.3, however version 21.1.3 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    (sample) wen.cao@MBC02XD15UJGH7 DemoPython % pip install --upgrade pip
    Collecting pip
      Using cached https://files.pythonhosted.org/packages/47/ca/f0d790b6e18b3a6f3bd5e80c2ee4edbb5807286c21cdd0862ca933f751dd/pip-21.1.3-py3-none-any.whl
    Installing collected packages: pip
      Found existing installation: pip 19.2.3
        Uninstalling pip-19.2.3:
          Successfully uninstalled pip-19.2.3
    Successfully installed pip-21.1.3
    (env) wen.cao@MBC02XD15UJGH7 DemoPython % 
    (env) wen.cao@MBC02XD15UJGH7 DemoPython % pip list
    Package    Version
    ---------- -------
    pip        21.1.3
    setuptools 41.2.0
    • 2.4 开始开发项目

    我们以一个test.py的脚本来代替一个完整项目源码。

    (env) wen.cao@MBC02XD15UJGH7 DemoPython % echo "print(\"hello venv\")\n" > test.py
    (sample) wen.cao@MBC02XD15UJGH7 DemoPython % cat test.py                             
    print("hello venv")
    
    (env) wen.cao@MBC02XD15UJGH7 DemoPython % ls
    env	test.py
    • 2.5 运行调试项目

    可以看到,我们是用venv/bin中的python解释器来运行我们的项目的。

    (env) wen.cao@MBC02XD15UJGH7 DemoPython % which python
    /Users/wen.cao/DemoPython/env/bin/python
    (env) wen.cao@MBC02XD15UJGH7 DemoPython % python test.py
    hello venv
    • 2.6 退出虚拟环境

    当项目开发完毕以后,就可以退出虚拟环境,回到操作系统的python环境里。

    (env) wen.cao@MBC02XD15UJGH7 DemoPython % deactivate
    wen.cao@MBC02XD15UJGH7 DemoPython % 
    wen.cao@MBC02XD15UJGH7 DemoPython % which python
    /usr/bin/python
  • 相关阅读:
    Kafka入门实战教程(10):不再依赖ZooKeeper的KRaft
    Kafka入门实战教程:学习总结目录索引

    应用理论知识的时间应该大于学习的时间学以致用
    需求决定功能,功能(需求)决定架构
    叔本华 论思考
    高阶组件是开闭原则的核心
    软件质量属性Quality attributes 总结
    软件设计的核心
    软件架构是工程的一部分,反应团队的分工与合作情况
  • 原文地址:https://www.cnblogs.com/gaodp/p/16360256.html
Copyright © 2020-2023  润新知