python 工具链 虚拟环境和包管理工具 pipenv

Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world. Windows is a first-class citizen, in our world.

pipenv 是Kenneth Reitz大神的作品,能够有效管理Python多个环境,各种包。过去我们一般用virtualenv搭建虚拟环境,管理python版本,但是跨平台的使用不太一致,且有时候处理包之间的依赖总存在问题;过去也常常用 pip进行包的管理,pip已经足够好,但是仍然推荐pipenv,相当于virtualenv和pip的合体,且更加强大。

pipenv主要有以下特性

  • pipenv集成了pip,virtualenv两者的功能,且完善了两者的一些缺陷。
  • 过去用virtualenv管理requirements.txt文件可能会有问题,Pipenv使用Pipfile和Pipfile.lock,后者存放将包的依赖关系,查看依赖关系是十分方便。
  • 各个地方使用了哈希校验,无论安装还是卸载包都十分安全,且会自动公开安全漏洞。。
  • 通过加载.env文件简化开发工作流程。
  • 支持Python2 和 Python3,在各个平台的命令都是一样的。

安装

pip install pipenv

Usages

$ pipenv
Usage: pipenv [OPTIONS] COMMAND [ARGS]...

Options:
  # 输出项目目录
  --where          Output project home information.
  # 显示虚拟环境目录
  --venv           Output virtualenv information.
  # python可执行命令路径
  --py             Output Python interpreter information.
  # pipenv环境变量
  --envs           Output Environment Variable options.
  # 删除
  --rm             Remove the virtualenv.
  --bare           Minimal output.
  --completion     Output completion (to be eval‘d).
  --man            Display manpage.
  # 创建虚拟环境
  --three / --two  Use Python 3/2 when creating virtualenv.
  --python TEXT    Specify which version of Python virtualenv should use.

  --site-packages  Enable site-packages for the virtualenv.
  --version        Show the version and exit.
  -h, --help       Show this message and exit.

Usage Examples:
   Create a new project using Python 3.7, specifically:
   # 用 python3.7 创建一个project
   $ pipenv --python 3.7

	 # 删除 project
   Remove project virtualenv (inferred from current directory):
   $ pipenv --rm

   # 根据 Pipfile 初始化环境(包括 dev 环境)
   Install all dependencies for a project (including dev):
   $ pipenv install --dev

	 #
   Create a lockfile containing pre-releases:
   $ pipenv lock --pre

	 # 查看已安装的包的依赖关系
   Show a graph of your installed dependencies:
   $ pipenv graph

   # 检查已安装的依赖项是否存在安全漏洞
   Check your installed dependencies for security vulnerabilities:
   $ pipenv check

	 # 使用本地setup.py在虚拟环境/Pipfile安装一个软件
   Install a local setup.py into your virtual environment/Pipfile:
   $ pipenv install -e .

   # 使用低级别的pip命令
   Use a lower-level pip command:
   $ pipenv run pip freeze

Commands:
  check      Checks for security vulnerabilities and against PEP 508 markers
             provided in Pipfile.
  clean      Uninstalls all packages not specified in Pipfile.lock.
  graph      Displays currently–installed dependency graph information.
  install    Installs provided packages and adds them to Pipfile, or (if no
             packages are given), installs all packages from Pipfile.
  lock       Generates Pipfile.lock.
  open       View a given module in your editor.
  run        Spawns a command installed into the virtualenv.
  shell      Spawns a shell within the virtualenv.
  sync       Installs all packages specified in Pipfile.lock.
  uninstall  Un-installs a provided package and removes it from Pipfile.

Locate the project:

$ pipenv --where
/Users/kennethreitz/Library/Mobile Documents/com~apple~CloudDocs/repos/kr/pipenv/test

Locate the virtualenv:

$ pipenv --venv
/Users/kennethreitz/.local/share/virtualenvs/test-Skyy4vre

Locate the Python interpreter:

$ pipenv --py
/Users/kennethreitz/.local/share/virtualenvs/test-Skyy4vre/bin/python

Install packages:

$ pipenv install
Creating a virtualenv for this project...
...
No package provided, installing all dependencies.
Virtualenv location: /Users/kennethreitz/.local/share/virtualenvs/test-EJkjoYts
Installing dependencies from Pipfile.lock...
...

To activate this project‘s virtualenv, run the following:
$ pipenv shell

加速

在Pipfile中增加

[[source]]
name = "pypi"
url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
verify_ssl = tru

开发流程

如果在开发环境已经完成开发,如何构建生产环境呢?这时候就要使用Pipfile.lock了,运行以下命令,把当前环境的模块lock住, 它会更新Pipfile.lock文件,该文件是用于生产环境的,你永远不应该编辑它。

$ pipenv lock

然后只需要把代码和Pipfile和Pipfile.lock放到生产环境,运行下面的代码,就可以创建和开发环境一样的环境,Pipfile.lock里记录了所有包和子依赖包的确切版本,因此是确定构建

$ pipenv install

如果要在另一个开发环境做开发,则将代码和Pipfile复制过去,运行以下命令:

安装包括 dev 开发中的包

$ pipenv install --dev

执行命令

cat Pipfile
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
requests = "*"
jinja2 = "*"
tobe = "*"

[requires]
python_version = "2.7"

[scripts]
start = ‘python main.py‘
list = ‘pip list‘

pipenv run start

vscode使用pipenv虚拟环境

  1. 获取当前虚拟环境的位置

    pipenv --venv
    
  2. 编辑 user 的setting.json
    {
        // Necessary for pipenv
        "python.pythonPath": "/Users/yangyanan/.local/share/virtualenvs/daily_report-lBui7cTH/bin/python",
        // For unsolved-import
        "python.jediEnabled": true,
        // Limit for Editor windows
        "workbench.editor.limit.value": 5
    }
    

参考

  1. 视频教程 https://www.youtube.com/watch?v=Ib1vO2Tbogo&t=12s

原文地址:https://www.cnblogs.com/hiyang/p/12631548.html

时间: 2024-10-20 01:33:35

python 工具链 虚拟环境和包管理工具 pipenv的相关文章

Python虚拟环境和包管理工具Pipenv的使用详解--看完这一篇就够了

前言 Python虚拟环境是一个虚拟化,从电脑独立开辟出来的环境.在这个虚拟环境中,我们可以pip安装各个项目不同的依赖包,从全局中隔离出来,利于管理. 传统的Python虚拟环境有virtualenv,使用pip freeze → requirements.txt 导出依赖.现在又有了一个新神器 -- Pipenv, 它是由大名鼎鼎的requests 作者 Kenneth Reitz 写的一个命令行工具,这个工具包装了virtualenv,使用Pipfile和Pipfile.lock管理,更加

Windoes包管理工具(Scoop)

Windoes包管理工具(Scoop) 对于习惯了apt-get,brew等工具的开发者来说,Windows下配置环境相对繁琐,这里推荐Win下的包管理工具Scoop. Win 包管理工具 Chocolate Scoop Scoop和Choco区别: Scoop与Chocolatey的区别如何? - 默认安装到?/ scoop /.您可以设置自己的程序,而不是担心他们会与其他用户的干扰程序(或他们与你,也许更重要的).如果您具有管理员权限,则可以选择在系统范围内安装程序. - 没有UAC弹出窗口

python版本管理工具pyenv和包管理工具pipenv

一.pyenv版本管理工具 pyenv是一个python版本管理工具,可以实现轻松切换多个python版本 它可根据每个用户更改全局python版本,也可以为每个项目指定python版本,还可以管理virtualenv虚拟环境,可以自己创建virtualenv或者通过pyenv-virtualenv来自动化创建虚拟环境 pyenv通过PATH环境变量来匹配切换python或者pip的工作目录,pyenv通过读取工作环境来指定使用哪个python版本,如在当前会话中查找PYENV_VERSION环

Python包管理工具之间的关系

转自http://www.nowamagic.net/academy/part/13/302/ 当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils, 显得较为混乱. 而将来的工具链组合非常简单:pip + distutils2. 1. distutils : Python 自带的基本安装工具,适用于非常简单的应用场景,使用: 为项目创建 setup.py 脚本. 执行 setup.py install 可进行安装. 2.

Python | Pipenv官方推荐的python包管理工具

原文地址:https://cloud.tencent.com/developer/article/1355672 Pipenv - 官方推荐的的python包管理工具. Pipenv是一款旨在将所有包管理工具(如bundler, composer, npm, cargo, yarn等)的优点集中应用于python领域中的工具.它对各个平台都有很好的支持. 它可以为你的项目自动创建和管理虚拟环境,并且在你安装/删除包时自动在Pipfile中添加/移除相应的包.它同时生成一个非常重要的Pipfile

windows安装python包管理工具pip

windows安装python包管理工具pip     pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包,可以替代 easy_install 工具. 一.前期准备 首先确认windows机器上面是否已经安装好了python.在cmd中输入python --version和python看看是否有反应 如上面所示,表示已经在windows平台上面搭建好了python环境. 二.下载安装 1.到官网去https://pypi.python.org/pypi/pip#downl

[转载]Python 包管理工具解惑

原文链接:http://zengrong.net/post/2169.htm Python 包管理工具解惑 python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到相当疑惑(嗯,是困惑).主要表现在下面几个方面: 这几个包管理工具有什么不同? distutils setuptools distribute disutils2 distlib pip 什么时候该用pip,什么时候该用 setup.py ,它们有关系么? easy_install.ez_setup

Python的包管理工具Pip

接触了Ruby,发现它有个包管理工具RubyGem非常好用,而且有非常完备的文档系统http://rdoc.info 发现Python下也有相同的工具,包含easy_install和Pip.只是,我没有细看easy_install的方法,这就简单的介绍一下Pip的安装与使用: 准备: $ curl -O http://python-distribute.org/distribute_setup.py $ python distribute_setup.py 安装: $ curl -O https

CentOS中Python pip包管理工具的安装和使用

Python有很多第三方的模块或包,要管理这些包,有很多方法.python的pip包管理工具,类似与CentOS中yum,使用该工具安装Python包非常方便. 从Python内部来说,pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品.distribute是setuptools的取代(Setuptools包后期不再维护了),pip是easy_install的取代. pip的安装前需要setuptools 或者 distribute,如果你使用的是P