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在创建虚拟环境
- 执行完命令,项目文件夹会生成两个文件,
Pipfile
和Pipfile.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