发布和版本历史 — pipenv 文档

来自菜鸟教程
Pipenv/docs/v2020.11.4/changelog
跳转至:导航、​搜索

发布和版本历史

2020.11.4 (2020-11-04)

功能和改进

  • 添加新命令 pipenv scripts 以显示来自 Pipfile 的快捷方式。 #3686
  • 从 URL 检索包文件哈希以加速锁定过程。 #3827
  • 将缺失的 --system 选项添加到 pipenv sync#4441
  • 新增选项对 --header/--no-headerpipenv lock 命令,在生成的 requirements.txt #4443


Bug修复

  • 修复百分比编码字符将在文件 URL 中不正确引用的错误。 #4089
  • 修复将 PIPENV_PYTHON 设置为文件路径会破坏环境名称的错误 #4225
  • 修复路径在比较前未规范化的错误。 #4330
  • 在 Pipfile 创建中正确处理 Python 主要和次要版本。 #4379
  • 修复非wheel文件需求可以成功解决的bug。 #4386
  • 修复导入路径错误导致pexept.exceptions.TIMEOUT未正确捕获的bug。 #4424
  • 修复复合 TOML 表未正确解析的错误。 #4433
  • 修复来自 Windows 注册表的无效 Python 路径破坏 pipenv install 的错误。 #4436
  • 修复 setup.py 中函数调用无法正确解析的问题。 #4446
  • 修复 venv 目录中的 dist-info 会被误认为是可编辑包的元数据的错误。 #4480
  • 使解析结果中的哈希顺序稳定。 #4513


供应库

  • tomlkit0.5.11 更新为 0.7.0#4433
  • requirementslib1.5.13 更新为 1.5.14#4480


改进的文档

  • 不鼓励在安装指南中安装自制软件。 #4013


2020.8.13 (2020-08-13)

Bug修复

  • pipenv uninstall --all-dev 的固定行为。 从现在开始,它不会卸载常规软件包。 #3722
  • 修复 --system 标志打开时将使用错误 Python 路径的错误。 #4315
  • 修复错误地将 Homebrew 安装的 Python 标记为虚拟环境 #4316
  • 修复 pipenv uninstall 抛出不存在的异常的错误。 #4321
  • 修复 Pipenv 无法在可编辑包的 setup.cfg 中找到正确的特殊指令文件的错误。 #4335
  • 修复赋值类型注解时无法正确解析setup.py的bug。 #4342
  • 修复 pipenv graph 抛出异常 PipenvCmdError(cmd_string, c.out, c.err, return_code) 的错误。 #4388
  • 不要复制本地文件包的整个目录树。 #4403
  • 正确检测 Pipenv 是否在激活的 virtualenv 下运行。 #4412


供应库

  • requirementslib 更新为 1.5.12#4385
  • ** 将 requirements 更新为 1.5.13
    • pip-shims 更新为 0.5.3#4421


2020.6.2 (2020-06-02)

功能和改进

  • Pipenv 现在将更稳健地检测现有的基于 venvvirtualenv 的虚拟环境。 #4276


Bug修复

  • + 登录 URL 身份验证片段将不再被错误地替换为空格 ( `` `` ) 字符。 #4271
  • 修复了在 / 下运行时导致 Pipenv 失败的回归。 #4273
  • 现在可以成功解析带有从 os.environ 读取的 version 变量的 setup.py 文件。 #4274
  • 修复了导致 Pipenv 无法在虚拟环境中安装软件包(如果这些软件包已存在于系统全局环境中)的错误。 #4276
  • 修复导致非特定版本被固定在 Pipfile.lock 中的错误。 #4278
  • 更正了 pipenv.cli.command 中缺失的异常导入和无效的函数调用调用。 #4286
  • 修复了解析名称由 setup.py 中的函数调用定义的包的问题。 #4292
  • 修复了在基于 venv 的虚拟环境中安装当前目录或 . 的回归。 #4295
  • 修复了在 Windows 上发现 python 路径的错误,该错误可能会阻止在 pipenv install 期间安装环境。 #4296
  • 修复了 requirementslib AST 解析器中阻止解析 setup.py 文件以获取依赖项元数据的问题。 #4298
  • 修复 Pipenv 无法实现会话交互的问题 #4305


供应库

  • 将需求库更新到版本 1.5.11#4292
  • *; 更新了供应商依赖项:
    *;* pythonfinder: 1.2.2 => 1.2.4
    requirementslib


2020.5.28 (2020-05-28)

功能和改进

  • pipenv installpipenv sync 将不再尝试在安装过程中安装满意的依赖项。 #3057, #3506
  • 添加了对 setup.py 文件中直接 url 依赖项的解析的支持,以尊重 PEP-508 样式的 URL 依赖项。 #3148
  • 添加了对所有依赖项类型解析的全面支持,包括直接 URL、zip 存档、tarball 等。
    • 改进了错误处理和格式。
    • 引入了改进的跨平台流包装器,以获得更好的 stdoutstderr 一致性。 #3298
  • 为了与其他命令和 --dev 选项描述保持一致,pipenv lock --requirements --dev 现在发出默认和开发依赖项。 新的 --dev-only 选项请求以前的行为(例如 生成 dev-requirements.txt 文件)。 #3316
  • Pipenv 现在将成功递归锁定 VCS 子依赖项。 #3328
  • 添加了对 --verbose 输出到 pipenv run 的支持。 #3348
  • Pipenv 现在将发现并解决 all VCS 依赖项的内在依赖项,无论它们是否可编辑,以防止解决冲突。 #3368
  • 添加了一个新的环境变量 PIPENV_RESOLVE_VCS,以关闭不可编辑的 VCS、文件和基于 URL 的依赖项的依赖项解析。 #3577
  • 添加了 Windows 用户通过设置 PIPENV_HIDE_EMOJIS=0 启用表情符号的功能。 #3595
  • 允许覆盖 PIPENV_INSTALL_TIMEOUT 环境变量(以秒为单位)。 #3652
  • 允许覆盖 PIP_EXISTS_ACTION 环境变量(值传递给 pip install)。 此处可能的值:https://pip.pypa.io/en/stable/reference/pip/#exists-action-option 当您需要 PIP_EXISTS_ACTION=i(忽略现有软件包)-非常适合需要快速设置的 CI 环境。 #3738
  • Pipenv 将不再强制覆盖所有 vcs 和文件依赖项上的 PIP_NO_DEPS,因为在预锁定步骤中对它们进行解析。 #3763
  • pipenv lock 期间改进的详细日志输出现在将输出流式传输到控制台,同时保持微调器。 #3810
  • 添加了对通过 asdf 和关联的 PIPENV_DONT_USE_ASDF 环境变量自动安装 python 的支持。 #4018
  • 现在可以使用 Pyenv/asdf,无论它们是否在 PATH 上可用。 在 Pipenv 的 .env 中设置 PYENV_ROOT/ASDF_DIR 允许 Pipenv 安装解释器而无需任何 shell 自定义,只要安装了 pyenv/asdf。 #4245
  • 添加了 --key 命令行参数,用于在运行 pipenv check 时包含个人 PyUp.io API 令牌。 #4257


行为改变

  • 当子进程返回输出时,对已知异常进行保守检查,因此用户不会看到整个回溯 - 只是错误。 #2553
  • 不要过早接触 Pipfile 并依赖它,以便可以在没有 Pipfile 的情况下执行 pipenv sync#3386
  • 重新启用 pipenv run 命令的 --help 选项。 #3844
  • 确保 pipenv lock -r --pypi-mirror {MIRROR_URL} 将尊重需求输出中的 pypi-mirror。 #4199


Bug修复

  • Pipenv/docs/v2020.11.4/source 不包含 url 字段时,引发 PipenvUsageError。 #2373
  • 修复了导致可编辑包解析有时失败并显示无用的 setuptools 相关错误消息的错误。 #2722
  • 修复了由于依赖系统实用程序 whichwhere 而导致错误的问题,这些实用程序在某些系统上可能并不总是存在。 - 修复了当目标 $PATH 上不存在名为 python 的可执行文件时,会导致 Python 发现周期性失败的错误。 #2783
  • 依赖解析现在将本地和远程文件的哈希写入锁定文件。 #3053
  • 修复了从 pipenv shell 中运行时阻止 pipenv graph 正确显示所有依赖项的错误。 #3071
  • 修复了 setup.py 文件中直接 url 依赖项的分辨率,以尊重 PEP-508 样式的 URL 依赖项。 #3148
  • 修复了在某些情况下在 virtualenv 中运行 pipenv 时导致警告报告失败的错误。
    • 修复了运行 pipenv clean 时包发现的错误。 #3298
  • 在 Windows 上用插入符号 (^) 引用命令参数以解决意外的 shell 转义。 #3307
  • 处理 UTF-8 编码的备用名称。 #3313
  • 在将不存在的包添加到 Pipfile 之前中止 pipenv。 #3318
  • 不要规范化用户传入的包名。 #3324
  • 修复无法使用 pipenv shell 激活自定义 virtualenv 的问题 #3339
  • 修复 --site-packages 标志无法识别的错误。 #3351
  • 修复 pipenv –clear 不工作的问题 #3353
  • 修复 $ pipenv install --selective-upgrade #3384 期间不可哈希类型错误
  • 在其 install_requires 中指定的直接 PEP508 兼容 VCS URL 的依赖项现在将在解析过程中成功锁定。 #3396
  • 修复了在某些情况下锁定 VCS 依赖项时可能发生的关键错误。 #3404
  • 修复了当源部分中缺少某些字段时抛出 ValidationError 的错误。 #3427
  • 当 Pipfile 中的源名称更改时,更新锁定文件中的索引名称。 #3449
  • 修复了导致 pipenv install --help 显示 --pre 重复条目的问题。 #3479
  • 修复了当 Pipfile Pipenv/docs/v2020.11.4/source 具有 verify_ssl=false 和带有自定义端口的 url 时导致 [SSL: CERTIFICATE_VERIFY_FAILED] 的错误。 #3502
  • 修复 sync --sequential 忽略 pip install 错误和日志。 #3537
  • 修复PIPENV_PIPFILE不在工作目录下无法创建lock文件的问题。 #3584
  • Pipenv 将不再无意中在所有 vcs 依赖项上设置 editable=True#3647
  • pipenv installpipenv lock--keep-outdated 参数现在将在遇到可编辑依赖项时删除说明符约束。 - 此外,--keep-outdated 将保留说明符,否则这些说明符将从任何尚未更新的条目中删除。 #3656
  • 修复了有时会导致 pipenv 在与 pipenv install 一起传递时无法遵守 --site-packages 标志的错误。 #3718
  • 比较使用过的包和 in-Pipfile 包时,将包名称规范化为小写。 #3745
  • pipenv update --outdated 现在可以正确处理发布前/发布后与普通版本之间的比较。 #3766
  • 修复了通过 pipenv lock --keep-outdated 固定过时的 VCS 依赖项时可能发生的 KeyError#3768
  • 解决了在 setup.pysetup.cfg 文件中遇到格式不正确的 python_version 标记时导致解析失败的问题。 #3786
  • 修复安装错误显示为列表的错误。 #3794
  • 更新pythonfinder,修复WSL下创建virtualenv时会错误选择python.exe的问题。 #3807
  • 修复了几个错误,这些错误可能会阻止可编辑的 VCS 依赖项安装到目标环境中,即使在报告安装成功时也是如此。 #3809
  • pipenv check --system 应该在系统上不存在 python 时找到正确的 Python 解释器。 #3819
  • 当路径是绝对路径时解析符号链接。 #3842
  • --pre--clear 选项传递给 pipenv update --outdated#3879
  • 修复了一个错误,该错误阻止了直接 URL 依赖项的解析,这些依赖项具有 PEP508 样式的直接 URL VCS 子依赖项和子目录。 #3976
  • 荣耀PIPENV_SPINNER环境变量#4045
  • 修复了 pipenv check 由于来自 pyup.io 的 API 密钥无效而失败的问题。 #4188
  • 修复了导致 VCS 依赖项的版本无意中包含在 Pipfile.lock 中的错误。 #4217
  • 修复了使用 --system 安装时导致 pipenv 搜索 pip 不存在的虚拟环境的错误。 #4220
  • Requires-Python 指定从 1.x 开始的 python 约束版本的值现在将被成功解析。 #4226
  • 修复 pipenv update --outdated 无法正确打印输出的问题。 #4229
  • 修复了导致 pipenv 在依赖解析阶段更喜欢来自 PyPI 的轮子的源分发的错误。 修复了在依赖项解析期间使用基于 pep517 的构建器阻止正确构建隔离的问题。 #4231
  • 当找不到匹配的 Python 版本时,不要回退到系统 Python。 #4232


供应库

  • 更新了供应商依赖项:

    • 属性18.2.0 => 19.1.0

    • 证书2018.10.15 => 2019.3.9

    • cached_property: 1.4.3 => 1.5.1

    • 地狱犬1.2.0 => 1.3.1

    • 点击完成0.5.0 => 0.5.1

    • colorama0.3.9 => 0.4.1

    • distlib: 0.2.8 => 0.2.9

    • idna: 2.7 => 2.8

    • jinja22.10.0 => 2.10.1

    • markupsafe1.0 => 1.1.1

    • orderedmultidict: (new) => 1.0

    • 包装18.0 => 19.0

    • 解析1.9.0 => 1.12.0

    • pathlib2: 2.3.2 => 2.3.3

    • pep517(new) => 0.5.0

    • pexpect: 4.6.0 => 4.7.0

    • pipdeptree: 0.13.0 => 0.13.2

    • pyparsing: 2.2.2 => 2.3.1

    • python-dotenv: 0.9.1 => 0.10.2

    • pythonfinder: 1.1.10 => 1.2.1

    • pytoml: (new) => 0.1.20

    • 请求2.20.1 => 2.21.0

    • requirementslib: 1.3.3 => 1.5.0

    • scandir: 1.9.0 => 1.10.0

    • shellingham: 1.2.7 => 1.3.1

    • 1.11.0 => 1.12.0

    • tomlkit: 0.5.2 => 0.5.3

    • urllib3: 1.24 => 1.25.2

    • vistir: 0.3.0 => 0.4.1

    • yaspin: 0.14.0 => 0.14.3


    • 删除了供应商依赖 cursor#3298

  • 更新了 pip_shims 以支持具有新 pip 版本的 --outdated#3766

  • 更新供应商的依赖项和调用

    • 更新供应商和修补的依赖项 - 更新 piptoolspippip-shims``tomlkit` 上的补丁

    • 修复依赖项调用 - 修复自定义 ``InstallCommand` 实例化 - 更新 ``PackageFinder` 用法 - 修复 ``Bool` 来自 ` 的字符串化尝试`tomlkit`

    更新了供应商依赖项:
    • 属性`18.2.0 => `19.1.0

    • 证书`2018.10.15 => `2019.3.9

    • cached_property: `1.4.3 => `1.5.1

    • 地狱犬`1.2.0 => `1.3.1

    • 点击`7.0.0 => `7.1.1

    • 点击完成`0.5.0 => `0.5.1

    • colorama`0.3.9 => `0.4.3

    • contextlib2: `(new) => `0.6.0.post1

    • distlib: `0.2.8 => `0.2.9

    • funcsigs: `(new) => `1.0.2

    • 导入库元数据 `1.3.0 => `1.5.1

    • importlib-resources: `(new) => `1.4.0

    • idna: `2.7 => `2.9

    • jinja2`2.10.0 => `2.11.1

    • markupsafe`1.0 => `1.1.1

    • more-itertools: `(new) => `5.0.0

    • orderedmultidict: `(new) => `1.0

    • 包装`18.0 => `19.0

    • 解析`1.9.0 => `1.15.0

    • pathlib2: `2.3.2 => `2.3.3

    • pep517`(new) => `0.5.0

    • pexpect: `4.6.0 => `4.8.0

    • pip-shims: `0.2.0 => `0.5.1

    • pipdeptree: `0.13.0 => `0.13.2

    • pyparsing: `2.2.2 => `2.4.6

    • python-dotenv: `0.9.1 => `0.10.2

    • pythonfinder: `1.1.10 => `1.2.2

    • pytoml: `(new) => `0.1.20

    • 请求`2.20.1 => `2.23.0

    • requirementslib: `1.3.3 => `1.5.4

    • scandir: `1.9.0 => `1.10.0

    • shellingham: `1.2.7 => `1.3.2

    • `1.11.0 => `1.14.0

    • tomlkit: `0.5.2 => `0.5.11

    • urllib3: `1.24 => `1.25.8

    • vistir: `0.3.0 => `0.5.0

    • yaspin: `0.14.0 => `0.14.3

    • zipp: `0.6.0

    • 删除了供应商依赖 cursor#4169

  • 添加和更新供应商依赖项以适应 safety 供应商: - safety (none) => 1.8.7 - dparse [X136X ] => 0.5.0 - pyyaml (none) => 5.3.1 - urllib3 1.25.8 - 证书 2019.11.28 => 2020.4.5.1 - pyparsing 2.4.6 => 2.4.7 ]resolvelib 0.2.2 => 0.3.0 - importlib-metadata 1.5.1 => 1.6.0 - [pip-shi] 0.5.1 => 0.5.2 - requirementslib 1.5.5 => 1.5.6 #4618X]#4618X

  • 更新了供应商 pip => 20.0.2pip-tools => 5.0.0#4215

  • 将供应商依赖项更新到最新版本以进行安全和错误修复:

    • 需求库 1.5.8 => 1.5.9

    • 参观 0.5.0 => 0.5.1

    • jinja2 2.11.1 => 2.11.2

    • 点击 7.1.1 => 7.1.2

    • 日期工具 (none) => 2.8.1

    • backports.functools_lru_cache 1.5.0 => 1.6.1

    • 枚举34 1.1.6 => 1.1.10

    • 汤姆 0.10.0 => 0.10.1

    • 导入lib_resources 1.4.0 => 1.5.0 #4226

  • 将供应商依赖项中的 attrs 导入路径更改为始终从 pipenv.vendor 导入。 #4267


改进的文档

  • Pipfile 条目中添加了关于变量扩展的文档。 #2317
  • 合并第一个文件中的所有贡献文档 #3120
  • 更新过时的手册页。 #3246
  • 将 CLI 文档移至其自己的页面。 #3346
  • 用等效的 gif 替换 docs index.rst 上的(不存在的)视频。 #3499
  • 澄清基本用法示例中关于使用双引号转义 shell 重定向的措辞 #3522
  • 确保文档在小屏幕设备上显示导航 #3527
  • 在一般建议和版本控制下添加了指向 TOML 规范的链接,以阐明应如何编写 Pipfile。 #3629
  • 使用新的 pytest 入口点更新了文档。 #3759
  • 修复 README.md 中的 GIF 链接以演示 Pipenv 的用法,并添加描述性替代文本。 #3911
  • 添加了一行描述花式扩展中的潜在问题。 #3912
  • Pipfile 如何工作以及与 Pipenv 关联的文档描述。 #3913
  • 明确python_versionpython_full_version的适当取值。 #3914
  • 为 –deploy 扩展和一些扩展差异编写描述。 #3915
  • .env 文件的更多文档 #4100
  • 更新了文档以指向工作链接。 #4137
  • 用 pipenv.pypa.io #4167 替换 docs.pipenv.org
  • 添加了检查文档拼写和清理现有印刷问题的功能。 #4209


2018.11.26 (2018-11-26)

Bug修复

  • 在 POSIX 上运行脚本之前,环境变量已正确扩展。 #3178
  • 当传入 --system 标志时,Pipenv 将不再禁用用户模式安装。 #3222
  • 修复了尝试在非 unicode 语言环境中呈现 unicode 输出的问题。 #3223
  • 修复了从全局 pyenv 版本文件解析 python 条目时可能导致失败的错误。 #3224
  • 修复了阻止解析来自某些 setup.py 文件的命名附加部分的问题。 #3230
  • 正确检测激活的 virtualenv 中的 virtualenv 位置。 #3231
  • 修复了导致在锁定操作期间将微调器帧写入标准输出的错误,这可能导致重定向管道失败。 #3239
  • 修复了无法正确卸载可编辑包的错误。 #3240
  • 更正了安装超时问题,该问题导致依赖项解析在持续时间较长的解析步骤中失败。 #3244
  • 使用 VCS 依赖项时,添加正常的 pep 508 兼容标记现在功能齐全。 #3249
  • 更新了 requirementslibpythonfinder 以修复多个错误。 #3254
  • Pipenv 现在将在使用 --skip-lock 安装时忽略哈希值。 #3255
  • 修复了多个 pipenv 进程尝试创建同一目录时 pipenv 可能崩溃的问题。 #3257
  • 修复了有时会阻止成功创建项目 Pipfile 的问题。 #3260
  • pipenv install 现在将在不与 --system 组合时取消设置 PYTHONHOME 环境变量。 #3261
  • Pipenv 将通过抑制警告对标准输出的使用并改为写入标准错误来确保警告不会干扰解析过程。 #3273
  • 修复了阻止环境变量(例如 PIPENV_DEVPIPENV_SYSTEM)被正确解析和实现的问题。 #3278
  • 安装 Python 后清除 pythonfinder 缓存。 #3287
  • 修复了某些依赖项的哈希解析中的竞争条件,这些依赖项缺少缓存条目或新的 Pipenv 安装。 #3289
  • Pipenv 现在将尊重 VCS 依赖锁上的顶级引脚。 #3296


供应库

  • *; 更新供应商依赖项以解决解析输出解析和 python 查找:
    *;* pythonfinder 1.1.9 -> 1.1.10
    • requirementslib 1.3.1 -> 1.3.3
    • vistir 0.2.3 -> 0.2.5 #3280


2018.11.14 (2018-11-14)

功能和改进

  • 改进了对失败的异常和错误处理。 #1977
  • 通过在单击中启用 auto_envvar_prefix=PIPENV(实现 PEEP-0002),通过 PIPENV_{FLAG_NAME} 环境变量为所有 CLI 标志添加了持久设置。 #2200
  • 添加了关于可用但由于运行 pipenv update --outdated 时的依赖冲突而跳过更新的改进消息。 #2411
  • 添加了环境变量 PIPENV_PYUP_API_KEY 以添加覆盖捆绑的 PyUP.io API 密钥的能力。 #2825
  • pipenv update --outdated 添加了额外的输出,以表明操作成功并且所有包都已经是最新的。 #2828
  • 更新了 crayons 补丁以在原生 powershell 上启用颜色,但将原生蓝色换成洋红色。 #3020
  • 添加了对 --barepipenv clean 的支持,并修复了 pipenv sync --bare 以实际减少输出。 #3041
  • 通过升级的 vistir 依赖项添加了与 Windows 兼容的微调器。 #3089
  • ** 添加了对 asdf 管理的 python 安装的支持。 #3096
  • pipenv --venv 等无操作命令的运行时性能提高了大约 2/3。 #3158
  • 在新的虚拟环境中运行 pipenv uninstall --all 时不显示错误但成功。 #3170
  • 通过排队子进程并行化改进了异步安装和错误处理。 #3217


Bug修复

  • 远程非 PyPI 工件和本地轮子和工件现在将包含它们自己的哈希值,而不是包含来自 PyPI 的哈希值。 #2394
  • 当被 pipenv 的 ToML 解析器解析时,非 ASCII 字符现在将被正确处理。 #2737
  • 更新了 pipenv uninstall 以尊重 --skip-lock 参数。 #2848
  • 修复了导致卸载有时无法成功从 Pipfiles 中删除软件包的错误,并在前一行或后几行注释。 #2885, #3099
  • 在已卸载的 Windows 上遇到 python 版本时,pipenv 将不再失败。 #2983
  • 修复翻译标记时添加不必要的额外内容 #3026
  • 修复了一个 virtualenv 创建问题,该问题可能导致新的 virtualenv 无意中尝试读取和写入全局站点包。 #3047
  • 修复了可能导致错误的 virtualenv 路径派生问题,特别是对于 WSL bash 上的用户。 #3055
  • 修复了一个错误,当 pip 等待已将登录凭据放入环境变量的用户输入时,该错误会导致抛出 Unexpected EOF 错误。 #3088
  • 修复了 requirementslib 中阻止从 mercurial 存储库成功安装的错误。 #3090
  • 修复了使用 pyenv 或任何其他子进程调用时的随机资源警告。 #3094
  • ** 修复了有时会阻止克隆和解析 mercurial 要求的错误。 #3096
  • 修复了 delegator.py 中与使用 PopenSpawn 流式输出时子进程调用相关的问题,该问题有时会引发意外的 EOF 错误。 #3102#3114#3117
  • 修复 pipenv clean 在 Windows 上失败的路径大小写问题 #3104
  • Pipenv 将避免在当前工作目录中留下构建工件。 #3106
  • 修复了损坏的子进程调用泄漏资源句柄并导致随机和零星故障的问题。 #3109
  • 修复了导致 pipenv clean 有时从基础 site-packages 文件夹中清除软件包或完全失败的问题。 #3113
  • 更新了 pythonfinder 以更正搜索 python 版本时嵌套路径取消嵌套的问题。 #3121
  • 添加了在非 UTF-8 系统上格式化控制台输出时忽略和替换非 ascii 字符的附加逻辑。 #3131
  • 修复了当设置了 PIPENV_VENV_IN_PROJECT 但项目内 .venv 是一个文件时的虚拟环境发现。 #3134
  • 在解析过程中,远程和本地非 PyPI 工件的哈希值现在将包含在 Pipfile.lock 中。 #3145
  • 修复项目路径散列逻辑,以防止虚拟环境的冲突。 #3151
  • 当虚拟环境路径包含括号时修复包安装。 #3158
  • Azure Pipelines YAML 文件已更新为使用最新的语法和产品名称。 #3164
  • 修复了新的微调器成功消息以在解析过程中仅写入一条成功消息。 #3183
  • 当与 pipenv install 一起使用时,Pipenv 现在将正确尊重 --pre 选项。 #3185
  • 修复在未创建 virtualenv 的项目中运行 pipenv graph 时出现异常的 bug #3201
  • 当源缺少名称时,名称现在将从提供的 URL 派生。 #3216


供应库

  • 更新了 pythonfinder 以更正搜索 python 版本时嵌套路径取消嵌套的问题。 #3061, #3121
  • *; 更新了供应商依赖项:
    *;* certifi 2018.08.24 => 2018.10.15
    • urllib3 1.23 => 1.24
    • requests 2.19.1 => 2.20.0
    • shellingham ``1.2.6 => 1.2.7
    • tomlkit 0.4.4. => 0.4.6
    • vistir 0.1.6 => 0.1.8
    • pythonfinder 0.1.2 => 0.1.3
    • requirementslib 1.1.9 => 1.1.10
    • backports.functools_lru_cache 1.5.0 (new)
    • cursor 1.2.0 (new) #3089
  • *; 更新了供应商依赖项:
    *;* requests 2.19.1 => 2.20.1
    • tomlkit 0.4.46 => 0.5.2
    • vistir 0.1.6 => 0.2.4
    • pythonfinder 1.1.2 => 1.1.8
    • requirementslib 1.1.10 => 1.3.0 #3096
  • 切换到tomlkit进行解析和写入。 从供应商处删除 prettytomlcontoml#3191
  • 更新了 requirementslib 以帮助解析本地和远程存档。 #3196


改进的文档

  • 扩展的开发和测试文档供贡献者开始使用。 #3074


2018.10.13 (2018-10-13)

Bug修复

  • 修复了 pipenv clean 中的一个错误,该错误导致全局包有时会无意中成为清理目标。 #2849
  • 修复供应商 vistir 的损坏的 backport 导入。 #2950#2955#2961
  • 修复了在运行 pipenv graph 时导入本地供应商依赖项的错误。 #2952
  • 修复了在 virtualenv 中运行时导致可执行文件发现失败的错误。 #2957
  • 修复大纲表的解析。 #2971
  • 修复了一个导致 verify_ssl 无法正确进入 pip install 的错误为 trusted-host#2979
  • 修复了导致规范化包名称无法针对 PyPI 解析的错误。 #2989
  • 增强的 CI 检测以检测 Azure Devops 构建。 #2993
  • 修复了阻止从命令行安装使用重定向符号的固定版本的错误。 #2998
  • 修复了阻止在不可编辑模式下安装本地目录的错误。 #3005


供应库

  • requirementslib 更新为版本 1.1.9#2989
  • 升级 pythonfinder => 1.1.1vistir => 0.1.7#3007


2018.10.9 (2018-10-09)

功能和改进

  • 添加了环境变量 PIPENV_VERBOSE 和 PIPENV_QUIET 以控制输出详细程度,而无需传递选项。 #2527
  • 更新了 test-PyPI 插件以更好地支持 json-API 访问(向前兼容)。 改进了新贡献者的测试过程。 #2568
  • 大大增强了python发现功能:
    • 添加了对 python 发现的 pep514(Windows 启动器/查找器)支持。
    • 为支持不同架构的 python 安装引入了架构发现。 #2582
  • 添加了对 msys 上的 pipenv shell 和 Windows 的 cygwin/mingw/git bash 的支持。 #2641
  • 增强了可编辑和 VCS 依赖项的分辨率。 #2643
  • 重复数据删除和重构 CLI 以使用有状态参数和对象传递。 参考本期#2814


行为改变

  • run 的虚拟环境激活已修订,以改进与其他 Python 发现工具的插值。 #2503
  • 改进终端着色以在 Powershell 中更好地显示。 #2511
  • 直接调用virtualenv进行虚拟环境创建,而不是依赖于pew#2518
  • pipenv --help 现在将包含简短的帮助说明。 #2542
  • 如果外壳检测失败,将 COMSPEC 添加到回退选项(以及 SHELLPYENV_SHELL),提高 Windows 上的稳健性。 #2651
  • 如果 run 失败并显示 Windows 错误 193 以处理不可执行的命令,则回退到 shell 模式。 这应该会提高在 Windows 上的可用性,其中一些用户在不指定命令的情况下运行不可执行的文件,依靠 Windows 文件关联来选择当前命令。 #2718


Bug修复

  • 修复了使用 ssh:// 样式 URLs #1393 阻止安装可编辑需求的错误

  • 在运行 pipenv update 时,锁定的本地可编辑依赖项的 VCS 引用现在将适当更新为最新的哈希值。 #1690

  • .tar.gz.zip 工件现在将安装依赖项,即使它们从 Lockfile 中丢失。 #2173

  • 命令行解析器现在将通过单击选项解析器正确处理多个 -e/--editable 依赖项,以帮助缓解未来的解析问题。 #2279

  • 修复了启用 PIP_PROCESS_DEPENDENCY_LINKS 时 pipenv 从 setup.py 解析 dependency_links 的能力。 #2434

  • 修复了可能导致 -i/--index 参数有时在包中被错误提取的错误。 这现在在命令行解析器中处理。 #2494

  • 修复了与 pip 10 中内部包查找器更改相关的非确定性分辨率问题。 #2499, #2529, #2589, #2666, #2767, #277 , #2795, #2801, #2824, #2862, [X169X]#272X X180X]#2894, #2933

  • 修复 Windows 上 Python 2 的 subshell 调用。 #2515

  • 修复了在 python 2 上编写 Lockfile 时有时会导致 pipenv 抛出 TypeError 或遇到编码问题的错误。 #2561

  • 改进 pipenv run 的引用逻辑,以便更好地与 Windows 内置命令配合使用。 #2563

  • 修复了一个与解析 VCS 要求相关的错误,包括额外内容和子目录片段。 更正了 requirementslib 解析器中导致一些标记被丢弃而不是评估的问题。 #2564

  • 修复了查找正确系统 python 位置的多个问题。 #2582

  • 捕获JSON解码错误,防止锁文件格式无效时出现异常。 #2607

  • 修复了一个罕见的错误,该错误在使用自定义源安装软件包时有时可能会导致错误。 #2610

  • 更新 requirementslib 以修复在解析格式错误的 VCS URI 时可能引发 UnboundLocalError 的错误。 #2617

  • 修复了阻止将多个 --ignore 参数传递给 pipenv check 的问题。 #2632

  • 修复了导致尝试对 ssh:// 样式 URI 进行散列的错误,这可能会在安装私有 ssh 存储库期间导致失败。 - 更正了导致某些可编辑 VCS 路径被错误地转换为 ssh:// URI 的路径转换问题。 #2639

  • 修复了在 Windows 的 bash 中使用 pipenv shell 时导致路径格式不正确的错误。 #2641

  • 通过 ssh:// 方案定义的私有存储库的依赖链接现在将正确安装并跳过散列,只要 PIP_PROCESS_DEPENDENCY_LINKS=1#2643

  • 修复了有时会导致 pipenv 在解析指定 verify_ssl = false 的源 URL 时错误解析 trusted_host 参数到 pip 的错误。 #2656

  • 防止 WORKON_HOME 中的虚拟环境出现故障时崩溃。 #2676

  • 修复了当项目根目录中存在 .venv 文件时 virtualenv 创建失败的问题。 #2680

  • 修复了可能导致依赖项的 -e/--editable 参数被意外解析为依赖项本身的错误。 #2714

  • 正确地将 verbosedebug 标志传递给解析器子进程,以便它生成适当的输出。 这也解决了 #2527 的修复引入的错误。 #2732

  • 所有标记现在都包含在 pipenv lock --requirements 输出中。 #2748

  • 修复了标记分辨率中可能导致重复和非确定性标记的错误。 #2760

  • 修复了依赖解析器中的一个错误,该错误在处理基于 setup.py 的依赖解析时会导致常规问题。 #2766

  • 更新了供应商依赖项:
    • pip-tools(更新并修补到最新版本,具有 pip 18.0 兼容性)

    • pip 10.0.1 => 18.0

    • click 6.7 => 7.0

    • toml 0.9.4 => 0.10.0

    • pyparsing 2.2.0 => 2.2.2

    • delegator 0.1.0 => 0.1.1

    • attrs 18.1.0 => 18.2.0

    • distlib 0.2.7 => 0.2.8

    • packaging 17.1.0 => 18.0

    • passa 0.2.0 => 0.3.1

    • pip_shims 0.1.2 => 0.3.1

    • plette 0.1.1 => 0.2.2

    • pythonfinder 1.0.2 => 1.1.0

    • pytoml 0.1.18 => 0.1.19

    • requirementslib 1.1.16 => 1.1.17

    • shellingham 1.2.4 => 1.2.6

    • tomlkit 0.4.2 => 0.4.4

    • vistir 0.1.4 => 0.1.6 #2802,

    #2867, #2880

  • 修复了 pipenv 在 WORKON_HOME 目录不存在时崩溃的错误。 #2877

  • 修复 pip 不是从 pipenv 的 patched 加载,而是从系统 1 加载 #2912

  • 修复了与 pip 18.1 版本相关的各种错误,这些错误阻止锁定、安装、同步和转储到 requirements.txt 文件。 #2924


供应库

  • 皮尤不再出售。 入口点 pewtwo、包 pipenv.pewpipenv.patched.pew 被删除。 #2521

  • pythonfinder 更新到主要版本 1.0.0 以进行集成。 #2582

  • 更新 requirementslib 以修复在解析格式错误的 VCS URI 时可能引发 UnboundLocalError 的错误。 #2617

    • 供应新库 vistirpip-shimstomlkitmodutilplette

    • 更新供应商库: - scandir1.9.0 - click-completion0.4.1 - semver2.8.1 - shellingham1.2.4 - pytoml0.1.18 - certifi2018.8.24 - [X1819X] X203X] - requirementslib1.1.5 - pythonfinder1.0.2 - pipdeptree0.13.0-X4 ] 到 0.9.1 #2639

  • 更新了供应商依赖项:
    • pip-tools(更新并修补到最新版本,具有 pip 18.0 兼容性)

    • pip 10.0.1 => 18.0

    • click 6.7 => 7.0

    • toml 0.9.4 => 0.10.0

    • pyparsing 2.2.0 => 2.2.2

    • delegator 0.1.0 => 0.1.1

    • attrs 18.1.0 => 18.2.0

    • distlib 0.2.7 => 0.2.8

    • packaging 17.1.0 => 18.0

    • passa 0.2.0 => 0.3.1

    • pip_shims 0.1.2 => 0.3.1

    • plette 0.1.1 => 0.2.2

    • pythonfinder 1.0.2 => 1.1.0

    • pytoml 0.1.18 => 0.1.19

    • requirementslib 1.1.16 => 1.1.17

    • shellingham 1.2.4 => 1.2.6

    • tomlkit 0.4.2 => 0.4.4

    • vistir 0.1.4 => 0.1.6 #2902,

    #2935


改进的文档

  • 简化了测试配置过程。 #2568
  • 更新文档以使用工作幸运饼干插件。 #2644
  • 添加了有关使用 $PIPENV_SHELL 环境变量对 pipenv shell 进行故障排除的附加信息。 #2671
  • 在文档中添加了指向 PEP-440 版本说明符的链接以获取更多详细信息。 #2674
  • 向 README.md 添加了用于从 git 安装的简单示例。 #2685
  • 停止推荐 –system 用于 Docker 上下文。 #2762
  • 修复了执行“pipenv install -e some-repository-url#egg=something”的示例 url,它在片段标识符中缺少“egg=”。 #2792
  • 修复了贡献文档中“亲切”文章的链接。 #2793
  • 澄清 pipenv install 文档 #2844
  • 用 PEEP-000 #2909 替换对用户语音的引用


2018.7.1 (2018-07-01)

功能和改进

  • 所有对 pipenv shell 的调用现在都使用 shellingham 从头开始实现,这是一个自定义库,专门用于处理边缘情况和外壳检测。 #2371
  • 通过一些小的兼容性/错误修复添加了对 python 3.7 的支持。 #2427#2434#2436
  • 添加新标志 pipenv --support 以替换诊断命令 python -m pipenv.help#2477, #2478
  • 通过微小的调整改进了导入时间和 CLI 运行时间。 #2485


Bug修复

  • 修复了一个持续的错误,该错误有时会将不兼容的版本解决到项目锁定文件中。 #1901
  • 修复了在创建包含前导破折号字符的虚拟环境时导致错误的错误。 #2415
  • 修复了导致--deploy --system在安装前覆盖Pipfile中可编辑的vcs包的逻辑错误,导致默认安装失败。 #2417
  • 更新了 requirementslib 以解决在 VCS 要求中正确引用标记的问题。 #2419
  • click-completion 安装了新的供应商 jinja2 模板,这会导致启用完成的用户出现模板错误。 #2422
  • 通过一些小的兼容性/错误修复添加了对 python 3.7 的支持。 #2427
  • 修复了从导入 versioneer 等实用程序的项目中的 setup.py 文件读取包名称的问题。 #2433
  • Pipenv 现在将确保其内部包名称注册表文件是用 unicode 字符串编写的。 #2450
  • 修复了导致作为相对路径的需求输入被输出为绝对路径或 URI 的错误。 修复了影响 git+git@host URL 规范化的错误。 #2453
  • Pipenv 现在将在 python<3.5 上默认使用 pathlib2 进行基于 Path 的文件系统交互。 #2454
  • 修复了在创建 virtualenv 期间阻止将使用 --pypi-mirror 设置的代理 PyPI 索引传递给 pip 的错误,这可能会导致创建在某些情况下冻结。 #2462
  • 使用 python -m pipenv.help 命令现在将为主机文件系统使用正确的编码以避免编码问题。 #2466
  • click_completion 的新 jinja2 模板现在将包含在 pipenv 源代码分发中。 #2479
  • 解决了一个长期存在的问题,即重新使用以前生成的 InstallRequirement 对象进行解析,这可能导致 PKG-INFO 文件信息被删除,引发 TypeError#2480
  • 通过更新 requirementslib,解决了从 Pipfiles 中的私有 PyPI URI 解析用户名的问题。 #2484


供应库

  • 所有对 pipenv shell 的调用现在都使用 shellingham 从头开始实现,这是一个自定义库,专门用于处理边缘情况和外壳检测。 #2371
  • 更新了 requirementslib 以解决在 VCS 要求中正确引用标记的问题。 #2419
  • click-completion 安装了新的供应商 jinja2 模板,这会导致启用完成的用户出现模板错误。 #2422
  • prettytoml 添加补丁以支持 Python 3.7。 #2426
  • 修补 prettytoml.AbstractTable._enumerate_items 以处理 StopIteration 错误,以准备发布 python 3.7。 #2427
  • 修复了从导入 versioneer 等实用程序的项目中的 setup.py 文件读取包名称的问题。 #2433
  • requirementslib 更新至版本 1.0.9 #2453
  • 解开了 pip-tools 的许多旧的、不必要的补丁,这些补丁会导致非确定性分辨率错误。 #2480
  • 通过更新 requirementslib,解决了从 Pipfiles 中的私有 PyPI URI 解析用户名的问题。 #2484


改进的文档

  • 添加了使用 Fedora 官方存储库进行安装的说明。 #2404


2018.6.25 (2018-06-25)

功能和改进

  • Pipenv 创建的 virtualenvs 现在将与 .project 文件夹相关联(功能可以稍后在此基础上实现,或者用户可以选择使用 pipenv-pipes 来充分利用这一点。) #1861【X204X】
  • Virtualenv 名称现在将出现在大多数 Windows 用户的提示中。 #2167
  • 添加了对带空格的 cmder shell 路径的支持。 #2168
  • pipenv graph 命令添加了嵌套的 JSON 输出。 #2199
  • 删除了供应商 pip 9 并供应商、修补并迁移到 pip 10。 更新了修补的 piptools 版本。 #2255
  • 现在可以通过从命令行传递 --pypi-mirror 参数或设置 PIPENV_PYPI_MIRROR 环境变量来设置 PyPI 镜像 URL 以覆盖 PyPI URL 的实例。 #2281
  • Virtualenv 激活行现在将避免写入某些 shell 历史文件。 #2287
  • Pipenv 现在只会在创建新项目时搜索 requirements.txt 文件,并且在此期间仅当用户未指定要传入的包时。 #2309
  • 添加了对通过 UNC 路径安装的驱动器的支持。 #2331
  • 添加了对用于 Linux bash shell 检测的 Windows 子系统的支持。 #2363
  • Pipenv 现在将通过在锁定期间一次性解析散列来更快地生成散列。 #2384
  • pipenv run 现在将尽可能避免产生额外的 COMSPEC 实例来运行命令。 #2385
  • 对需求解析代码库、解析器和错误消息的大量内部改进。 #2388
  • pipenv check 现在可以采用多个附加参数 --ignore,该参数采用参数 cve_id 以忽略特定的 CVE。 #2408


行为改变

  • Pipenv 现在将解析和大写platform_python_implementation标记.. 警告:: 如果您有一个过时的 Pipfile 小写比较值(例如 cpython 而不是 CPython)。 #2123
  • Pipenv 现在只会在创建新项目时搜索 requirements.txt 文件,并且在此期间仅当用户未指定要传入的包时。 #2309


Bug修复

  • 对需求解析代码库、解析器和错误消息的大量内部改进。 #1962#2186#2263#2312
  • Pipenv 现在将解析和大写platform_python_implementation标记。 #2123
  • 修复了在解析 #2142 时解析和分组旧式 setup.py 额外内容的错误
  • 修复了导致 pipenv 图在针对空或不存在的环境运行时抛出无用异常的错误。 #2161
  • 修复了当用户处于 virtualenv 时导致 --system 错误中止的错误。 #2181
  • 删除了供应商 cacert.pem,这可能会导致某些具有自定义证书设置的用户出现问题。 #2193
  • 修复了导致直接调用 virtualenv 而不是通过模块调用它的回归。 #2198
  • 锁定现在将在 pipenv update 运行期间锁定正确的 VCS 参考。 使用 Pipfile 中指定的新 vcs ref 运行 pipenv update 现在将在指定的 ref 处正确获取、解析和安装指定的依赖项。 #2209
  • pipenv clean 现在会在清理环境时正确忽略来自 pip freeze 的评论。 #2262
  • 导致不兼容的python 版本的包被锁定的解决错误已得到修复。 #2267
  • 修复了导致 pipenv 图有时无法显示的错误。 #2268
  • 更新了 requirementslib 以修复影响相对路径转换的 Pipfile 解析错误。 #2269
  • Windows 可执行文件发现现在利用 os.pathext#2298
  • 修复了导致 --deploy --system 在失败之前无意中创建了 virtualenv 的错误。 #2301
  • 修复了导致无法在文件和轮子路径中取消引用特殊字符的问题。 #2302
  • 现在仅当 VCS 依赖项与请求的引用不匹配时才手动获取它们。 #2304
  • 添加了错误处理功能,以正确处理没有说明符的单位数 Requires-Python 元数据。 #2377
  • pipenv update 现在将在确保依赖项与项目 Lockfile 同步之前始终运行解析器和锁定。 #2379
  • 解决了我们修补的解析器中的一个错误,该错误在某些情况下可能导致非确定性解析失败。 在只有 Pipfile 的项目中运行不带参数的 pipenv install 现在将在安装前首先正确锁定以进行依赖项解析。 #2384
  • 修补 python-dotenv 以确保环境变量始终编码为文件系统编码。 #2386


改进的文档

  • 更新文档措辞以阐明 Pipenv 在包装生态系统中的整体作用。 #2194
  • 添加了贡献文档和指南。 #2205
  • 添加了有关主管兼容性的说明。 #2215
  • 修复了与开发理念和贡献文档的断开链接。 #2248


供应库

  • 删除了供应商 cacert.pem,这可能会导致某些具有自定义证书设置的用户出现问题。 #2193

  • 删除了供应商 pip 9 并供应商、修补并迁移到 pip 10。 更新了修补的 piptools 版本。 #2255

  • 更新了 requirementslib 以修复影响相对路径转换的 Pipfile 解析错误。 #2269

  • 添加了自定义外壳检测库 shellingham,这是我们对 pew 更改的一个端口。 #2363

  • 修补 python-dotenv 以确保环境变量始终编码为文件系统编码。 #2386

  • 更新了供应商库。 更新了以下供应商库:

    • distlib 从版本 0.2.60.2.7

    • jinja2 从版本 2.9.52.10

    • pathlib2 从版本 2.1.02.3.2

    • 从版本 2.8.0 解析为 2.8.4

    • pexpect 从版本 2.5.22.6.0

    • 从版本 2.18.42.19.1 的请求。

    • idna 从版本 2.62.7

    • 从版本 2018.1.162018.4.16 的证书。

    • 包装从版本 16.817.1

    • 六个从版本 1.10.01.11.0

    • 从版本 0.2.01.0.1 的需求库。

    此外,scandir 已被供应商提供和修补,以避免在回退到 pathlib2 时导入主机系统二进制文件。 #2368