博客
关于我
Python virtualenv
阅读量:799 次
发布时间:2023-03-06

本文共 1156 字,大约阅读时间需要 3 分钟。

项目开发环境隔离:使用 virtualenv 解决多版本依赖问题

在开发多个 Python 应用程序时,系统安装的 Python 3.4 只有一个版本。所有第三方包都会被 pip 安装到系统的 site-packages 目录下。这种情况下,每个项目都共享同一个 Python 环境会带来问题。例如,如果一个项目需要 Jinja 2.7,另一个项目需要 Jinja 2.6,如何处理这种情况?

这种情况下,每个项目都需要一个独立的 Python 运行环境。virtualenv 就是用来为每个项目创建隔离的 Python 环境的工具。


安装 virtualenv

首先,我们使用 pip 安装 virtualenv:

pip3 install virtualenv

创建独立的项目环境

假设我们要开发一个新项目 myproject,可以按照以下步骤操作:

  • 创建项目目录:
  • mkdir myprojectcd myproject
    1. 使用 virtualenv 创建独立的 Python 环境:
    2. virtualenv --no-site-packages venv

      参数 --no-site-packages 的作用是避免将系统Python环境中的第三方包复制到新环境中,这样新建的环境会是一个干净的环境。


      激活虚拟环境

      进入虚拟环境后,pythonpip 会指向当前虚拟环境的 Python 版本:

      source venv/bin/activate  # 在 Mac 上使用

      你会发现命令提示符前会显示 (venv),表示已经进入了名为 venv 的虚拟环境。


      安装依赖项并运行项目

      在虚拟环境中安装所需的第三方包:

      pip install jinja2

      然后运行项目:

      python myapp.py

      需要注意的是,virtualenv 环境下的 pip 只会安装到该环境中,不会影响系统 Python 环境。


      退出虚拟环境

      当你完成项目开发后,可以退出虚拟环境:

      deactivate

      此时命令提示符会恢复到原来的状态。


      virtualenv 的原理

      virtualenv 的工作原理非常简单:它会复制系统 Python 的根目录到虚拟环境的根目录,并创建相应的 Python 解释器。通过修改 PYTHONPATH 环境变量,virtualenv 会让你在虚拟环境中使用复制的 Python 解释器。


      小结

      virtualenv 为每个项目提供了独立的 Python 运行环境,避免了不同项目之间的依赖冲突。这种方法不仅简化了环境管理,还提高了项目的可维护性和稳定性。

      通过使用 virtualenv,我们可以为每个项目创建一个干净的环境,确保依赖版本不冲突。这种做法在团队协作或长期项目开发中尤为重要。

    转载地址:http://qrafk.baihongyu.com/

    你可能感兴趣的文章
    python | flower,一个强大的 Python 库!
    查看>>
    python | funcy,一个超强的 提供函数式编程工具 Python 库!
    查看>>
    python | ggplot,一个超强的 Python 库!
    查看>>
    python | grab,一个强大的 Python 库!
    查看>>
    python | gunicorn,一个非常实用的 Python 库!
    查看>>
    python | h5py,一个无敌的关于 HDF5 的 Python 库!
    查看>>
    python | huey,一个非常厉害的 任务调度 Python 库!
    查看>>
    python | hypothesis,一个有趣的 Python 库!
    查看>>
    python | Indico,一个超酷的 Python 库!
    查看>>
    python | isort,一个有趣的 自动整理导入语句 的Python 库!
    查看>>
    python | jinja,一个超酷的 Python 库!
    查看>>
    python | joblib,一个强大的 Python 库!
    查看>>
    python调用git bash_Python学习第70课-用Git Bash在命令行打开sublime
    查看>>
    python | jsonschema,一个实用的 验证 JSON 数据结构 Python 库!
    查看>>
    python课程的中期报告范文_课题研究中期总结报告范文
    查看>>
    python | lxml,一个超酷的 关于XML/HTML 文档 Python 库!
    查看>>
    python | mplfinance,一个有趣的金融数据可视化 Python 库!
    查看>>
    python | nipy,一个强大的关于 神经影像数据分析 的Python 库!
    查看>>
    python | NLTK,一个强大的 自然语言处理 Python 库!
    查看>>
    python | nupic,一个强大的 处理时间序列的Python 库!
    查看>>