pipenv 虚拟环境

pipenv

0. 命令汇总

序号 作用 命令 备注
1 安装pipenv pip install pipenv
2 预览用法/帮助 pipenv --help
3 创建虚拟环境(默认python版本) pipenv install
4 创建虚拟环境(指定python版本) pipenv --python 3.6
5 创建虚拟环境(使用系统的Python2) pipenv --two
6 创建虚拟环境(使用系统的Python3) pipenv --three
7 激活进入虚拟环境 pipenv shell
8 退出虚拟环境 exit / ctrl+d
9 删除虚拟环境 pipenv --rm
10 安装包 pipenv install beautifulsoup4
11 安装包(指定版本) pipenv install parsel==1.3.1
12 安装包(指定只用于开发环境) pipenv install --dev nose2
13 卸载包 pipenv uninstall beautifulsoup4
14 卸载包(所有包) pipenv uninstall --all Pipfile.lock文件不受影响
15 卸载包(所有开发包) pipenv uninstall --all--dev 会从Pipfile文件中移除这些包
16 更新包 pipenv update requests
17 更新包(所有包) pipenv update
18 查看现有包哪些已经过期 pipenv update --outdated
19 查看虚拟环境目录 pipenv --venv
20 查看项目根目录 pipenv --where
21 查看虚拟环境Python解释器所在路径 pipenv --py
22 检查软件包的完整性 pipenv check
23 查看依赖树 pipenv graph

1. 安装pipenv

# 安装命令
pip install pipenv

# 预览用法/帮助
pipenv 

pipenv --help
# pipenv 具有的选项:
Usage: pipenv [OPTIONS] COMMAND [ARGS]...
Options:
  --where                         Output project home information.				显示项目文件所在路径		
  --venv                          Output virtualenv information.				显示虚拟环境实际文件所在路径
  --py                            Output Python interpreter information.		显示虚拟环境Python解释器所在路径
  --envs                          Output Environment Variable options.			显示虚拟环境的选项变量
  --rm                            Remove the virtualenv.						删除虚拟环境
  --bare                          Minimal output.								最小化输出
  --completion                    Output completion (to be executed by the		完整输出
                                  shell).

  --man                           Display manpage.								显示帮助页面
  --support                       Output diagnostic information for use in
                                  GitHub issues.

  --site-packages / --no-site-packages								
                                  Enable site-packages for the virtualenv.		附带安装原Python解释器中的第三方库
                                  [env var: PIPENV_SITE_PACKAGES]

  --python TEXT                   Specify which version of Python virtualenv	指定某个Python版本作为虚拟环境的安装源
                                  should use.

  --three / --two                 Use Python 3/2 when creating virtualenv.		使用Python 3/2创建虚拟环境(注意本机已安装的Python版本)
  --clear                         Clears caches (pipenv, pip, and pip-tools).
                                  [env var: PIPENV_CLEAR]

  -v, --verbose                   Verbose mode.									版本信息
  --pypi-mirror TEXT              Specify a PyPI mirror.
  --version                       Show the version and exit.
  -h, --help                      Show this message and exit.					帮助信息


Usage Examples:
   Create a new project using Python 3.7, specifically:
   $ pipenv --python 3.7

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

   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

   Install a local setup.py into your virtual environment/Pipfile:
   $ pipenv install -e .

   Use a lower-level pip command:
   $ pipenv run pip freeze

# pipenv 可使用的命令参数
Commands:
  check      Checks for PyUp Safety 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.											锁定并生成Pipfile.lock文件
  open       View a given module in your editor.								在编辑器中查看一个库
  run        Spawns a command installed into the virtualenv.					在虚拟环境中运行命令
  scripts    Lists scripts in current environment config.						
  shell      Spawns a shell within the virtualenv.								进入虚拟环境
  sync       Installs all packages specified in Pipfile.lock.
  uninstall  Uninstalls a provided package and removes it from Pipfile.			卸载一个库
  update     Runs lock, then sync.												卸载当前所有的包,并安装它们的最新版本

2. 创建虚拟环境

# 创建自己的项目目录(文件夹),并进入该目录(文件夹),在该目录下使用命令可以创建一个虚拟的环境

# 创建虚拟环境
pipenv install # 默认系统最新版本python解释器

# 创建指定版本的虚拟环境
pipenv --python 3.6 #指定使用Python3.6的虚拟环境
pipenv --two        #使用系统的Python2在创建虚拟环境
pipenv --three      #使用系统的Python3在创建虚拟环境
  • 执行完命令,项目文件夹会生成两个文件,PipfilePipfile.lock。如果命令执行前项目目录中不存在 Pipfile 文件,该命令将会创建一个 Pipfile 文件。如果已经有Pipfile 文件已经存在,则会根据这个Pipfile生成虚拟环境。

3. Pipfile文件内容

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

[packages]
flask = "*"

[dev-packages]

[requires]
python_version = "3.10"

  • source用来设置仓库地址,即从哪下载虚拟环境所需要的包
  • packages用来指定项目依赖的包,即你安装了的包
  • dev-packages用来指定开发环境需要的包,这类包只用于开发过程,不用与生产环境,比如单元测试相关的包,只在开发阶段有用,这样分开便于管理。
  • requires 中指定目标Python版本

4. Pipfile文件内容

  • Pipfile.lock中记录了当前虚拟环境中安装的依赖的版本号以及哈希,以保证每次根据这些值装出来的依赖都是一致的,该文件用来保证包的完整性。记住,任何情况下不要手动修改该文件!
  • 项目提交时,可将Pipfile 文件和Pipfile.lock文件一并提交,给其他开发人员克隆下载,他们可以根据此Pipfile文件运行命令pipenv install生成自己的虚拟环境。

5. 虚拟环境位置

  • 创建的虚拟环境默认会在~/.virtualenvs中,虚拟环境的命名以我们的项目名为前缀
# 查看虚拟环境的相关位置信息,进入虚拟环境,执行
pipenv --venv

6. 安装卸载包

# 安装命令
pipenv install beautifulsoup4   #在项目所在虚拟环境中安装beautifulsoup4
pipenv install parsel==1.3.1    #安装parsel并指定其版本
pipenv install --dev nose2      #安装nose2包并将其关联为只在开发环境中需要的包

# 卸载命令
pipenv uninstall beautifulsoup4 #在项目所在虚拟环境中卸载beautifulsoup4
pipenv uninstall --all          #从虚拟环境中移除所有已安装的包,但Pipfile.lock文件不受影响
pipenv uninstall --all--dev     #从虚拟环境中卸载所有开发包,并从Pipfile文件中移除这些包

# 更新命令
pipenv update requests          #在项目中更新requests包
pipenv update                   #更新项目中所有的包
pipenv update --outdated        #查看现有包哪些已经过期

#查看命令
pipenv graph                    #显示现有的依赖包
pipenv lock                     #更新Pipfile.lock文件锁定当前环境的依赖版本
  • 上面代码中值得一提的是--dev标志,加了此标志的包只用于开发环境,安装包记录在Pipfile中的dev-package中,如果别人克隆你的Profile文件后使用命令pipenv install创建虚拟环境,默认不会安装dev-package下的安装包,除非使用命令pipenv install --dev
  • Pipefile 和 Pipefile.lock 都会按照你的操作进行自动的更新,如果需要手动修改包的依赖条件,手工编辑 Pipefile 并进行安装即可。

7. 兼容virtualenv

# pipenv可以像virtualenv一样使用命令生成requirements.txt文件。
pipenv lock -r --dev > requirements.txt

# 同样的,也可以像virtualenv一样通过requirements.txt文件安装包
pipenv install -r requirements.txt

# 这个命令让我们可以重用以前requirements.txt文件来构建我们新的开发环境,把我们的项目顺利的迁到pipenv。

8. 激活进入\退出虚拟环境

# 进入虚拟环境/或者直接创建虚拟环境,进入项目文件夹路径,执行
pipenv shell

# 退出虚拟环境
exit / ctrl+d

# 删除虚拟环境
pipenv --rm

9. 使用虚拟环境执行代码

# 进入虚拟环境的情况下使用虚拟环境运行代码
python hello.py

# 不进入虚拟环境的情况下使用虚拟环境运行代码
pipenv run hello.py

10. 查看

# 查看虚拟环境目录
pipenv --venv

# 查看项目根目录
pipenv --where

# 检查软件包的完整性
pipenv check

# 查看依赖树
pipenv graph
posted @ 2022-04-26 20:12  ArHowe  阅读(774)  评论(0编辑  收藏  举报