pipenv使用

本文介绍了Python官方推荐的包管理工具pipenv,它集成了virtualenv、pip和pyenv的功能。内容涵盖pipenv的安装、环境初始化、常用命令、高级技巧(如导入和生成requirements.txt、指定版本等),还列举了常见报错及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pipenv是Python官方推荐的包管理工具。可以说,它集成了virtualenv, pip和pyenv三者的功能。其目的旨在集合了所有的包管理工具的长处,如: npm, yarn, composer等的优点。
***自动为项目创建和管理虚拟环境***所以每一个项目都要安装pipenv哦

安装pipenv
  • 可全局安装,终端:pip3 install pipenv
  • 在每一个项目下安装 ,打开项目,在项目路径下,终端运行pipenv install # 相当于安装packanges里的所有包
初始化pipenv环境
  • pipenv --three
  • pipenv --python3 # 指定python版本
  • pipenv --python3.6
常用命令
  • pipenv install # 安装包
  • pipenv shell # 激活当前虚拟环境
  • exit #退出虚拟环境
  • pipenv install pytest --dev #安装开发依赖包
  • pipenv graph #图形显示包依赖关系
  • pipenv lock #生成lockfile
  • pipenv uninstall --all #删除所有依赖包
高级技巧
导入requirements.txt
  • pipenv install会自动安装requirements.txt中的依赖包并创建一个pipfile文件
  • 同样可以使用pipenv install -r path/to/requirements.txt导入
指定安装包的版本信息
  • 例如:pipenv install requests==2.13.0
生成requirements.txt文件
  • 例:pipenv lock -r生成requirements.txt文件
  • 例:pipenv lock -r -d生成dev-packages的requirements.txt文
编码风格检查
  • pipenv默认集成了flake8, 可以用来检测编码风格
    例:pipenv check --style xx.py
浏览模块代码
  • 例:pipenv open requests
自动加载环境变量.env
  • pipenv shellpipenv run会自动加载.env
常见报错
  • pipenv install时报错pip.exceptions.InstallationError: Command “python setup.py egg_info” failed with error code 1
    错误原因是pipenv是用python2安装的,解决办法是使用pip3重新安装pipenv
pip unintall pipenv
pip3 install pipenv
  • 在项目目录里运行pipenv时报错AttributeError: module ‘enum’ has no attribute ‘IntFlag’
    是因为在项目目录里运行pipenv命令时,项目虚拟环境的python版本低于3.6.4, 由于IntFlag是从python3.6.4才开始集成到python内置模块的。当激活了项目的虚拟环境之后, 环境变量PYTHONPATH会被设置为当前虚拟环境的site-packages目录,因此pipenv依赖的IntFlag无法找到。 解决办法是在运行pipenv时设置环境变量PYTHONPATH为空
    PYTHONPATH= pipenv
### 配置 Pipenv 使用 Allure 的方法 要在 Pipenv 中集成和使用 Allure 来生成测试报告,可以按照以下方式操作: #### 安装依赖项 首先,在 `Pipfile` 文件中添加必要的 Python 包来支持 Allure 报告功能。以下是需要的主要包及其用途: - **pytest-allure-adaptor**: 提供 Pytest 和 Allure 之间的适配器。 - **playwright**: 支持浏览器自动化测试。 在终端执行以下命令以安装这些依赖项: ```bash pipenv install pytest allure-pytest playwright --dev ``` 这会将所需的开发工具作为开发依赖项添加到您的项目中[^1]。 #### 创建测试脚本 创建一个简单的测试文件(例如 `tests/test_example.py`),其中包含一些基本的测试用例,并通过装饰器标记它们以便于后续生成报告。 示例代码如下所示: ```python import pytest @pytest.mark.feature("User Login") def test_successful_login(): assert True, "Login should be successful" @pytest.mark.bug("Invalid credentials check") def test_failed_login(): assert False, "Failed login due to invalid credentials" ``` 以上代码片段展示了两个不同的测试场景——一个是成功的登录验证;另一个则是失败的情况用于模拟错误处理逻辑[^1]。 #### 运行测试并生成报告 为了能够顺利地运行测试并将结果导出为 HTML 格式的可视化报表,请遵循下面的操作指南: ##### 设置环境变量 确保系统路径已正确设置 ALLURE 命令行工具的位置。如果是在 Linux 上,则可能还需要额外配置 JAVA_HOME 变量以及调整权限等问题[^2]。 可以通过修改 `.bashrc` 或者直接在 shell session 当前生效的方式完成此步骤: ```bash export PATH=$PATH:/path/to/allure/bin source ~/.bashrc ``` ##### 执行测试与收集数据 利用 pipenv 虚拟环境中激活后的状态下来调用 py.test 工具加上相应的参数选项来进行实际的任务执行过程: ```bash pipenv run python -m pytest tests/ --alluredir=./results/ ``` 这里指定了输出目录存放临时产生的 json 数据文件夹位置 ./results/[^1]. ##### 构建最终HTML版本文档 最后一步就是把之前得到的数据转换成易于阅读理解的形式展示出来即 html 页面形式: ```bash allure serve ./results/ ``` 或者如果您希望保存本地副本而不是立即打开浏览窗口的话也可以采用打包模式代替serve子命令: ```bash allure generate ./results/ -o ./report/ --clean ``` 这样就完成了整个流程从编写测试案例直到查看图形化统计分析图表为止的工作流构建工作[^1]^. #### GitHub Actions 自动化部署 (可选扩展部分) 为了让 CI/CD 流程更加便捷高效还可以考虑加入 github actions 实现持续集成目的。新建 .github/workflows/ci.yml 文件内容大致结构如下: ```yaml name: Test and Report Workflow on: push: branches: - main jobs: build-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Install dependencies via Pipenv run: | pip install pipenv pipenv install --dev - name: Run Tests & Generate Results run: pipenv run python -m pytest tests/ --alluredir=./results/ - name: Setup Allure Command-line Tool uses: franzbischoff/install-allure-action@master with: version: latest-stable - name: Build Allure Reports run: allure generate ./results/ -o ./report/ --clean && allure open ./report/ ``` 该 YAML 文件定义了一个完整的动作序列涵盖了检出源码、准备解释器环境、加载所需库直至触发 allure report 查看服务启动等一系列环节[^1]. --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值