pycharm用Pipenv创建项目

一、pipenv介绍

pipenv是一个python的包管理工具,提供python的各个版本间的管理,各种包管理。官网

pipenv主要有以下特点:

  • pipenv集成了pip,virtualenv两者的功能。
  • pipenv会在项目根目录下创建Pipfile文件用于记录包的版本信息、Pipfile.lock文件来锁定安装包的版本和依赖信息,管理包之间的依赖关系。
  • 无需激活虚拟机环境执行代码,只要有pipfile文件即可使用虚拟环境的依赖包执行python程序,如:通过执行命令pipenv run python xx.py
  • 在一个新的项目根目录下执行pipenv install,则他会自动创建一个虚拟环境,并且生成一个Pipfile文件;
  • 当install命令没有传递参数指定安装包,如果当前存在Pipfile,则会自动安装所有Pipfile中的packages中的包。

二、使用pipenv

2.1 安装pipenv

cmd窗口中,输入代码:

复制代码
pip install pipenv

安装完成后,随意新建一个文件夹Pipenv示例,cmd管理员权限切换到该文件夹路劲下。

2.2 创建虚拟环境

方式1: 安装指定python版本的虚拟环境:pipenv install --python 3.12.1

注:要打包的.py项目文件用的什么python版本安装的第三方库,就安装什么python版本,(python版本不同安装的同名第三方库可能有差异),不然很可能打包出来的exe不能运行。

方式2: 直接使用命令pipenv install,在虚拟环境目录下新增一个虚拟环境

执行完后,可以看到当前目录下创建了Pipfile、Pipfile.lock文件。

Pipfile文件用于记录包的版本信息;

Pipfile.lock文件来锁定安装包的版本和依赖信息,管理包之间的依赖关系;

Pipfile文件可以复制到其他项目内,通过执行pipenv install命令,根据这个Pipfile文件生成虚拟环境和依赖包的安装。

2.3 激活环境

在文件夹Pipenv示例根目录中激活环境:pipenv shell

查看虚拟环境安装了什么模块:pip list

2.4 虚拟环境中安装项目依赖包

在激活的虚拟环境中安装需要的第三方库,跟正常在python中安装库是一样的,例如:pip install datetime

卸载库也是跟正常在python中卸载库是一样使用:pip uninstall datetime

2.5 检查项目在虚拟环境中是否能正常运行

将要运行的项目文件,放在文件夹Pipenv示例跟目录下,有两种方式运行:

方式1: 在激活的虚拟环境中,输入:python xxx.py

方式2:在未激活的虚拟环境状态下,文件夹Pipenv示例跟目录下输入:pipenv run python xxx.py(只要有Pipfile文件即可)

运行完程序未报错,则认为项目在该虚拟机环境下能正常运行;

如果程序报错缺依赖包,再按上面2.4的步骤安装项目依赖包。

2.6 打包项目

在虚拟环境中安装打包工具:pip install pyinstaller

打包:pyinstaller -F xxx.py,pyinstaller其他参数不做详细介绍。

如果下次要进入该虚拟环境,直接在文件夹Pipenv示例跟目录中,执行命令pipenv shell即可进入

2.7 删除虚拟环境

命令:pipenv --rm

删除虚拟环境后,如果目录下仍存在Pipfile、Pipfile.lock文件,可以通过pipenv install重新进行安装虚拟环境,且重新安装的虚拟环境,名称与删除前一致。

若想退出虚拟环境,可以输入exit退出。

相关推荐
小oo呆24 分钟前
【学习心得】Jupyter 如何在conda的base环境中其他虚拟环境内核
python·jupyter·conda
MonkeyKing_sunyuhua1 小时前
在 Visual Studio Code (VSCode) 中配置 MCP(Model Context Protocol)
ide·vscode·编辑器
小白学大数据1 小时前
Scrapy框架下地图爬虫的进度监控与优化策略
开发语言·爬虫·python·scrapy·数据分析
浊酒南街1 小时前
TensorFlow之微分求导
人工智能·python·tensorflow
smileNicky1 小时前
在 VSCode 中运行 Vue.js 项目
ide·vue.js·vscode
立秋67891 小时前
用Python绘制梦幻星空
开发语言·python·pygame
alpszero2 小时前
YOLO11解决方案之对象裁剪探索
人工智能·python·计算机视觉·yolo11
白云千载尽2 小时前
相机、雷达标定工具,以及雷达自动标定的思路
python·自动驾驶·ros
Growthofnotes2 小时前
VSCode中Node.js 使用教程
ide·vscode·node.js
咕噜咕噜啦啦2 小时前
python爬虫实战训练
爬虫·python