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退出。

相关推荐
曲径海盗1 天前
【Python 学习第 40 天】for 循环
python·学习笔记·编程入门
专注仿真1 天前
知识问答大模型-rag算法详解
人工智能·python·控制算法
染指11101 天前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents
云和数据.ChenGuang1 天前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节
xyouyuweizhu1 天前
字节流与字符流:Java IO 的两条主线该怎么选
java·开发语言·python
迪菲赫尔曼1 天前
【基础篇 04】第一次使用终端:命令在哪里输入,电脑现在又“站”在哪里?
python·yolo·目标检测
qianbo_insist1 天前
# 在 Qwen3.5-2B 上把 GDN-1 无损换成 GDN-2:一次完整的架构手术实验(负结果)
人工智能·pytorch·python·架构
专注仿真1 天前
Agentic RAG算法详解
人工智能·python·大模型训练·控制算法
学习论之费曼学习法1 天前
无人值守AI内容矩阵实战(8):标题 A/B 实验的 6 个工程实现细节,隔日对比与自动判胜
人工智能·python·算法·矩阵·自动化·a/b测试·内容矩阵
东哥16881 天前
我用 DeepSeek 做了 4 个零依赖的赚钱小工具,全部开源
python·开源·deepseek