之所以要为每一个项目分别创建一个虚拟环境,因为如果每个项目都共用全局的包,假如每个项目用到的包不一样,就需要为每一个项目分别创建一个虚拟环境,这样每个项目可以用不同的包来开发。
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创建环境
注意:
另外可以修改依赖镜像,想要安装依赖包速度快点,修改Pipfile文件里面的源(直接修改url地址)
http://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
在其他的 python 开发环境中,打开此项目文件可以正常的进行开发,需注意安装包时使用 pipenv install
命令安装包即可。
如果有提示在此系统上禁止运行脚本,主要是由于没有权限执行脚本,要修改策略才行。以管理员权限运行 powershell(windows 终端),然后执行 set-executionpolicy remotesigned
修改策略,然后再次加载项目就可以了。
查看所有需要更新的包
pipenv update --outdated
更新所有包
pipenv update
更新指定包
pipenv update <包名>
pipenv --venv
pipenv --where
pipenv --py
不激活虚拟环境下使用虚拟环境中的解释器执行 python 程序
pipenv run python test.py
在虚拟环境中执行 python 程序
pipenv shell
python test.py
pipenv install # 如果不需要与Pipfile.lock版本一致,则执行pipenv install
pipenv sync # 如果要安装跟Pipfile.lock版本一致的包,则执行pipenv sync
pipenv install --dev # 安装开发环境
注:如果没有 Pipfile.lock 文件则会创建文件并安装初始化环境
pipenv可以像virtualenv一样用命令生成 requirements.txt 文件
pipenv lock -r --dev > requirements.txt
pipenv也可以通过requirements.txt安装包
pipenv install -r requirements.txt
pipenv install -r --dev requirements.txt # 只安装开发包