自学Python第二十五天- Pipenv 虚拟环境和包管理工具
pipenv 是Kenneth Reitz大神的作品,能够有效管理Python多个环境,各种包。
之所以要为每一个项目分别创建一个虚拟环境,因为如果每个项目都共用全局的包,假如每个项目用到的包不一样,就需要为每一个项目分别创建一个虚拟环境,这样每个项目可以用不同的包来开发。
安装 Pipenv
Pipenv 可以使用 pipy 工具进行安装或更新
pip install pipenv
pip install --upgrade pipenv
需注意的是,Pipenv 会通过环境变量来配置虚拟环境,所以要将 python 和 python 的 script 添加到环境变量中。
配置虚拟环境
到项目目录,为项目配置虚拟环境
pipenv --two # 使用当前系统中的Python2 创建环境
pipenv --three # 使用当前系统中的Python3 创建环境
pipenv --python 3 # 指定使用Python3创建环境
pipenv --python 3.6 # 指定使用Python3.6创建环境
pipenv --python 2.7.14 # 指定使用Python2.7.14创建环境
注意:
- 创建环境时应使用系统中已经安装的、能够在环境变量中搜索到的Python 版本,否则会报错。
- 每次创建环境都会在当前目录下生成一个名为Pipfile文件,用来记录刚创建的环境信息,如果当前目录下之前存在该文件,会将其覆盖。
另外可以修改依赖镜像,想要安装依赖包速度快点,修改Pipfile文件里面的源(直接修改url地址)
https://mirrors.aliyun.com/pypi/simple/ #阿里
https://pypi.tuna.tsinghua.edu.cn/simple/ #清华
http://pypi.douban.com/ #豆瓣
http://pypi.hustunique.com/ #华中理工大学
http://pypi.sdutlinux.org/ #山东理工大学
http://pypi.mirrors.ustc.edu.cn/ #中国科学技术大学
安装虚拟环境
设置好后安装虚拟环境
pipenv install
安装好虚拟环境后可以生成 Pipfile.lock 文件,该文件是通过hash算法将包的名称和版本,及依赖关系生成哈希值,可以保证包的完整性。另外也可以在安装好的环境中直接生成 lock 文件
pipenv lock // 生成lockfile
项目提交时,可将Pipfile 文件和Pipfile.lock文件一并提交,待其他开发克隆下载,根据此 Pipfile 运行命令 pipenv install --dev
可以生成自己的虚拟环境。
激活(启动)虚拟环境
启动当前目录下的虚拟环境,如果当前目录下无虚拟环境则会在当前目录下自动创建虚拟环境。启动了虚拟环境,执行python脚本才能正确找到依赖模块。
pipenv shell
环境经激活后,会发现命令提示符变了,此时成功的进入虚拟环境。在此环境中可以查看安装的包
pip list
安装和卸载包
安装或卸载依赖模块到虚拟环境中,注意不再使用 pip 进行安装卸载了
pipenv install XXX # 安装XXX模块并加入到Pipfile
pipenv install XXX==1.11 # 安装固定版本的XXX模块并加入到Pipfile
pipenv install xxx --dev # 仅仅安装开发环境下的依赖包(项目部署上线不需要的包)
pipenv uninstall XXX # 卸载XXX模块并从Pipfile中移除
pipenv uninstall --all # 卸载全部包并从Pipfile中移除
pipenv uninstall --all-dev # 卸载全部开发包并从Pipfile中移除
可以查看包的依赖关系
pipenv graph
退出虚拟环境
退出当前虚拟环境,命令行提示符前缀消失
exit
删除虚拟环境
pipenv --rm
使用 Pipenv
在其他的 python 开发环境中,打开此项目文件可以正常的进行开发,需注意安装包时使用 pipenv install
命令安装包即可。
如果有提示在此系统上禁止运行脚本,主要是由于没有权限执行脚本,要修改策略才行。以管理员权限运行 powershell(windows 终端),然后执行 set-executionpolicy remotesigned
修改策略,然后再次加载项目就可以了。
其他命令
包的更新
查看所有需要更新的包
pipenv update --outdated
更新所有包
pipenv update
更新指定包
pipenv update <包名>
查看虚拟环境
pipenv --venv
查看项目路径
pipenv --where
查看本项目的 python 解释器
pipenv --py
启动 python 应用
不激活虚拟环境下使用虚拟环境中的解释器执行 python 程序
pipenv run python test.py
在虚拟环境中执行 python 程序
pipenv shell
python test.py
根据 Pipfile.lock 安装虚拟环境
pipenv install # 如果不需要与Pipfile.lock版本一致,则执行pipenv install
pipenv sync # 如果要安装跟Pipfile.lock版本一致的包,则执行pipenv sync
pipenv install --dev # 安装开发环境
注:如果没有 Pipfile.lock 文件则会创建文件并安装初始化环境
兼容 requirements.txt 文件
pipenv可以像virtualenv一样用命令生成 requirements.txt 文件
pipenv lock -r --dev > requirements.txt
pipenv也可以通过requirements.txt安装包
pipenv install -r requirements.txt
pipenv install -r --dev requirements.txt # 只安装开发包