首页 > 编程语言 >Day01 1.4 Python虚拟环境的搭建

Day01 1.4 Python虚拟环境的搭建

时间:2023-06-16 21:45:03浏览次数:60  
标签:1.4 bin Python -- virtualenvwrapper 虚拟环境 usr local

Day01 1.4 Python虚拟环境的搭建

【一】虚拟环境介绍

(1)虚拟环境优点

  • 1、使不同应用开发环境相互独立
  • 2、环境升级不影响其他应用,也不会影响全局的python环境
  • 3、防止出现包管理混乱及包版本冲突

(2)什么是虚拟环境,为什么要有它?它解决了什么问题

  • 操作系统装了python3.8
    • 使用django 2.2.2开发了一个项目
    • 使用django 3.x 开发了一个i项目
    • 把两个项目都打开,同时开发
    • 每个项目都用自己独立的环境,装的模块相互不影响
  • 两种解决方案:
    • Virtualenv
    • pipenv

【二】Windows平台

(1)安装

  • 建议使用pip3安装到python3环境下
    • pip3 install virtualenv
    • pip3 install virtualenvwrapper-win

(2)配置虚拟环境管理器工作目录

(2.1)配置环境变量:

  • 控制面板 =>
  • 系统和安全 =>
  • 系统 =>
  • 高级系统设置 =>
  • 环境变量 =>
  • 系统变量 =>
  • 点击新建 =>
  • 填入变量名与值
    • 变量名:
      • WORKON_HOME
    • 变量值:
      • 自定义存放虚拟环境的绝对路径
    • eg: WORKON_HOME: D:\Virtualenvs

(2.2)同步配置信息:

  • 去向Python3的安装目录 =>
  • Scripts文件夹 =>
  • virtualenvwrapper.bat =>
  • 双击

【三】MacOS、Linux平台

(1)安装

(2)工作文件

  • 先找到virtualenvwrapper的工作文件 virtualenvwrapper.sh,该文件可以刷新自定义配置,但需要找到它
  • MacOS可能存在的位置 /Library/Frameworks/Python.framework/Versions/版本号文件夹/bin
  • Linux可能所在的位置 /usr/local/bin | ~/.local/bin | /usr/bin
  • 建议不管virtualenvwrapper.sh在哪个目录,保证在 /usr/local/bin 目录下有一份
  • 如果不在 /usr/local/bin 目录,如在 ~/.local/bin 目录,则复制一份到 /usr/local/bin 目录
-- sudo cp -rf ~/.local/bin/virtualenvwrapper.sh /usr/local/bin

(3)配置

  • ~/.bash_profile 完成配置,virtualenvwrapper的默认默认存放虚拟环境路径是 ~/.virtualenvs
  • WORKON_HOME=自定义存放虚拟环境的绝对路径,需要自定义就解注
  • VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
  • source /usr/local/bin/virtualenvwrapper.sh
  • 在终端让配置生效:
-- source ~/.bash_profile

(4)使用

  • 在终端工作的命令

1、创建虚拟环境到配置的WORKON_HOME路径下

  • 选取默认Python环境创建虚拟环境:
-- mkvirtualenv 虚拟环境名称
  • 基于某Python环境创建虚拟环境:
-- mkvirtualenv -p python2.7 虚拟环境名称
-- mkvirtualenv -p python3.6 虚拟环境名称

2、查看已有的虚拟环境

-- workon

3、使用某个虚拟环境

-- workon 虚拟环境名称

4、进入|退出 该虚拟环境的Python环境

-- python | exit()

5、为虚拟环境安装模块

-- pip或pip3 install 模块名

6、退出当前虚拟环境

-- deactivate

7、删除虚拟环境(删除当前虚拟环境要先退出)

-- rmvirtualenv 虚拟环境名称

【四】Pycharm创建虚拟环境

【五】导出项目依赖

(1)requirements.txt 导出方法

  • 我们开发了一个项目
    • 依赖了很多第三方模块
    • 第三方模块装在了虚拟环境上
  • 后期我们需要把项目发送给别人
    • 别人不知道我们装了那些模块
  • 在项目根路径,一定要有个文件:
    • requirements.txt
    • 里面记录了当前项目依赖那些第三方模块
  • 我们的项目要导出:requirements.txt
  • 下载包
pip freeze
# wcwidth==0.2.5  # 模块名==版本号
  • 命令
pip freeze > requirements.txt
  • 会把当前解释器中所有的第三方模块

    • 都导出到requirements.txt
  • 给了别人后,别人只需要执行

pip3 install -r requirements.txt
  • 别人就好把该项目所有的依赖装好,然后愉快运行即可

(2)注意事项

  • requirements.txt 一定要按照这个文件名命名吗?

    • 不一定
    • 但是约定俗称是这样
    • 有的叫 req.txt
  • 有的情况,我们不能上网

    • 我们需要把当前依赖---》导出zip--->在不能上网的机器上导入
    • 每个包,其实都是whl文件
    • 你可以提前下好whl文件
    • 后期再不能上网的电脑上安装
pip install  路径/requests.whl
  • 网上搜一下,如何批量导出本地的所有第三方包---->zip
  • 安装到不能上网的电脑上

标签:1.4,bin,Python,--,virtualenvwrapper,虚拟环境,usr,local
From: https://www.cnblogs.com/dream-ze/p/17486554.html

相关文章

  • python入门学习之《python编程快速上手》
    #《python编程快速上手》1-9章第1-2章:python基础和控制流#python严格区分大小写;#代码行的缩进很重要,一般用4个空格。大多数情况下,代码行缩进告诉python它属于哪个代码块。#python下标从0开始;#行末使用续行字符\,将一行指令写成多行。在[],{},或()中的多行语句,不需要使用反斜......
  • python之冒泡排序
    冒泡排序原理:;两两比较,将(大、小)的元素往右移importrandoma=random.sample(range(0,10),4)#随机生成4个1到10之内的数字lenth=len(a)#获取长度print(a)#需要冒泡排序的列表#比较(趟数),最后一趟无需比较,所以减1forjinrange(lenth-1):#-1:最后一......
  • Python设计模式-07-装饰模式
    装饰模式是一种结构型设计模式,它允许我们动态地将行为添加到对象中,而不需要使用继承。装饰模式通常包括以下几个角色:抽象组件(Component):定义了一个接口,用于被装饰对象和装饰器共同实现。具体组件(ConcreteComponent):实现了抽象组件定义的接口,并提供了默认的行为。抽象装饰......
  • Python设计模式-17-外观模式
    外观模式是一种结构型设计模式,它为复杂的子系统提供了一个简单的接口,从而隐藏了子系统的复杂性。外观模式通常包括以下几个角色:外观(Facade):提供了一个简单的接口,用于访问子系统中的一组接口。子系统(Subsystem):实现了子系统的功能,并处理外观对象指派的任务。下面是一个简单......
  • Python设计模式-18-中介模式
    中介模式是一种行为型设计模式,它允许对象之间通过一个中介对象进行通信,从而减少对象之间的直接耦合。中介模式通常包括以下几个角色:中介者(Mediator):定义了一个接口,用于与各个同事对象通信,并协调它们之间的交互。具体中介者(ConcreteMediator):实现了中介者定义的接口,并协调各个......
  • Python设计模式-19-备忘录模式
    备忘录模式是一种行为型设计模式,它允许我们在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。备忘录模式通常包括以下几个角色:发起人(Originator):定义了一个接口,用于创建备忘录对象和恢复对象状态。备忘录(Memento):存储发起人对象的内部状态。管理......
  • Python设计模式-20-迭代器模式
    迭代器模式是一种行为型设计模式,它允许我们按照顺序访问一个聚合对象中的元素,而不需要暴露该对象的内部表示。迭代器模式通常包括以下几个角色:迭代器(Iterator):定义了一个接口,用于按照顺序访问聚合对象中的元素。具体迭代器(ConcreteIterator):实现了迭代器定义的接口,并维护了当......
  • Python设计模式-21-解释器模式
    解释器模式是一种行为型设计模式,它定义了一种语言,用于解释和执行特定的任务。解释器模式通常包括以下几个角色:抽象表达式(AbstractExpression):定义了一个接口,用于解释和执行特定的任务。终结符表达式(TerminalExpression):实现了抽象表达式定义的接口,并表示语言中的终结符。......
  • Python设计模式-22-模板模式
    模板模式是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。模板模式通常包括以下几个角色:抽象类(AbstractClass):定义了一个算法的骨架,其中包含一些抽象方法,用于延迟到子类中实现。具体类(ConcreteClass):实现了抽象类定义的接口,并实现了其中的抽象方法......
  • Python设计模式-06-代理模式
    代理模式是一种结构型设计模式,它提供了一个代理对象来控制对另一个对象的访问。代理模式通常包括以下几个角色:抽象主题(Subject):定义了代理对象和真实对象的公共接口,可以是一个抽象类或接口。真实主题(RealSubject):定义了代理对象所代表的真实对象。代理(Proxy):持有一个真实对象的......