当前位置: 首页 > news >正文

python虚拟环境及其在项目实践中的应用

文章目录

  • 1.问题的提出
  • 1.什么是python虚拟环境
  • 2.如何创建
    • 2.1第1步-为共享同一虚拟环境的项目创建共同的父目录
    • 2.2第2步-在父目录下创建虚拟python环境
    • 2.3在父目录下创建各个项目文件夹

1.问题的提出

假设我正在开发若干python项目,这里假定项目名分别为Project1Project2,这两个项目都用到了同样版本的python扩展库numpy20.1,而我的电脑的python安装目录下已经有numpy21.1(这里称之为主python环境),为了确保我的2个项目都能运行,就不能使用主python环境,因为python扩展库高版本很可能不对低版本兼容。怎么办?
答案就是:为共同使用同一python依赖包的所有项目创建共同的python虚拟环境

1.什么是python虚拟环境

Python虚拟环境是一个隔离的Python环境,允许用户安装和管理不同的依赖关系。它可以从电脑独立开辟出来,将一个项目的依赖性与另一个项目分开,这里的依赖性是指任何模块、库或包。每个项目都有一个特定版本的依赖关系。Python虚拟环境包含了一个特定版本的Python和一个包含相关项目的依赖性的文件夹。

2.如何创建

2.1第1步-为共享同一虚拟环境的项目创建共同的父目录

以上面的问题为例,可以在本地磁盘某个目录下,如/home/imagan,为Project1Project2创建父目录,例如:/home/imagan/mypythonproject

2.2第2步-在父目录下创建虚拟python环境

这里仅介绍python内置命令venv来创建虚拟环境。
这里以linux系统为例,介绍创建过程:

  • 启动命令行,进入mypythonproject目录
  • 执行如下命令:
$ python3 -m venv myenv   # 创建一个名为myenv的虚拟环境
  • 在虚拟环境下安装各种需要的扩展库,例如上面提到的numpy20.1
$ source myenv/bin/activate  # 激活虚拟环境
(myenv)...$ python -m pip install --upgrade pip   #升级pip到最新版,这个很必要,有时候安装第三方扩展库不成功,往往因为pip版本太低。
(myenv)...$ pip install -i https://mirrors.aliyun.com/pypi/simple/  numpy==20.1  # 这里使用阿里云或其他国内镜像,有利于加快第三方扩展库的下载速度。
... $  deactivate  # 退出虚拟环境

2.3在父目录下创建各个项目文件夹

各个项目的代码各自放在父目录下。
如果希望用第三方软件,如pycharm,可以在创建项目时,把前面创建的虚拟环境添加到当前项目中。具体请参考有关帮助。

http://www.lryc.cn/news/268167.html

相关文章:

  • 普中STM32-PZ6806L开发板(烧录方式)
  • 基于单片机设计的指纹锁(读取、录入、验证指纹)
  • HarmonyOS - 基础组件绘制
  • AR智慧校园三维主电子沙盘系统研究及应用
  • web前端项目-七彩夜空烟花【附源码】
  • 在k8s中将gitlab-runner的运行pod调度到指定节点
  • 1.解决父组件传数据给子组件太慢,导致子组件获取不到合适数据渲染出错问题2.vue中props传递异步数据,子组件用watch监听
  • SpringMVC之获取请求参数和域对象共享数据
  • IntelliJ IDEA Community(社区版)下载及安装自用版
  • 【C语言:编译、预处理详解】
  • 【宇宙猜想】AR文创入驻今日美术馆、北京天文馆等众多展馆,在AR互动中感受科技魅力!
  • 前端面试题html
  • AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
  • TCP:IP原理
  • Java 中 Lambda 表达式的使用
  • 【IO】IO模型与零拷贝
  • 鸿蒙 - arkTs:状态管理
  • YOLOv5-Lite 树莓派4B 15帧教程
  • 2014年第三届数学建模国际赛小美赛A题吹口哨解题全过程文档及程序
  • 设计模式-注册模式
  • css 美化滚动条样式
  • 视频压缩不影响画质简单方法,一分钟搞定!
  • Zookeeper的使用场景
  • Java 面试题集锦记录
  • 【自然语言处理】第2部分:识别文本中的个人身份信息
  • C#中的.NET与.NET Framework区别
  • 详解Keras3.0 Layer API: LSTM layer
  • Vue和React的运行时,校验引入包的上下文差异
  • C语言中函数调用和嵌套
  • JVM基础篇---02