• 浅谈pipreqs组件(自动生成需要导入的模块信息) 和 virtualenv(虚拟环境)


    一、pipreqs组件

    pipreqs的作用

    一起开发项目的时候总是要搭建环境和部署环境的,这个时候必须得有个python第三方包的list,一般都叫做requirements.txt。 如果一个项目使用时virtualenv环境,还好办 pip freeze 就可以解决,但是如果一个项目的依赖list没有维护,而且又是环境混用,那就不好整理的呀,不过,这里安利一个工具 pipreqs,可以自动根据源码生成 requirements.txt .

    pip freeze命令

    $ pip freeze > requirements.txt
    

    这种方式配合virtualenv 才好使,否则把整个环境中的包都列出来了。

    pipreqs的安装

    pip install pipreqs

    pipreqs的使用

    生成requirements.txt文件

    使用方式也比较简单,直接进入项目下然后使用 pipreqs ./ 命令即可,如:

    pipreqs ./
    

    有可能会报如下错误:

    这是由于编码问题所导致的,加上encoding参数即可,如下:

    pipreqs ./ --encoding=utf-8
    

    安装requirements.txt文件中的模块

    直接用下面命令就可以将文件中所有的模块一次性安装了

    安装依赖文件:pip3 install -r requirements.txt 
    

    二、 virtualenv简介

    virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。

    例如:

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

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

    安装

    pip3 install virtualenv
    

    基本使用

    为一个工程创建一个虚拟环境:

    首先:准备对哪个目录进行虚拟,就先进入到这个目录下(这里是c:PythonProject nblog ),然后运行命令:

    virtualenv -p c:Python36python.exe venv
    

    说明: -p就是python的版本(需要带上路径) venv就是虚拟的环境变量(目录名字)。

    如果不需要指定python版本,直接使用命令:

    virtualenv  venv
    

    激活虚拟环境

    需要进入自动创建的文件夹venv里的script目录

    然后执行activate命令

    c:PythonProject
    nblog>cd venv/Scripts
     
    c:PythonProject
    nblogvenvScripts>activate
    

    从现在起,任何你使用pip安装的包将会放在 venv 文件夹中,与全局安装的Python隔绝开。

    像平常一样安装包,比如:

    pip install requests
    

    退出虚拟环境

    使用deactivate命令即可退出当前虚拟环境

    c:PythonProject
    nblogvenvScripts>activate
    

    这将会回到系统默认的Python解释器,包括已安装的库也会回到默认的。

    删除虚拟环境

    要删除一个虚拟环境,只需删除它的文件夹即可。

  • 相关阅读:
    Bootstrap4(28): 滚动监听(Scrollspy)
    Bootstrap4(27): 弹出框
    Bootstrap4(26): 提示框
    Bootstrap4(25): 模态框
    Bootstrap4(24): 轮播
    Bootstrap4(23): 自定义表单
    Bootstrap4(22): 输入框组
    Bootstrap4(21): 表单控件
    Bootstrap4(20): 表单
    Bootstrap4(19): 面包屑导航(Breadcrumb)
  • 原文地址:https://www.cnblogs.com/zhaohuhu/p/9217632.html
Copyright © 2020-2023  润新知