发布和版本历史 — pipenv 文档
发布和版本历史
2021.5.29 (2021-05-29)
Bug修复
- 修复了在 PIPFILE 没有 [SOURCE] 部分时传递 –skip-lock 会引发错误的错误:“tomlkit.exceptions.NonExistentKey: 'Key “source” does not exist.'” #4141
- 修复在包含 & 和 $ 符号的路径中环境不会激活的错误 #4538
- 修复项目依赖项中的
importlib-metadata与pipenv中的依赖项冲突的错误。 #4549 - 修复
pep508checker.py不期望两位数的 Python 次要版本的错误(例如 “3.10”)。 #4602 - 修复包含 () 和 [] 符号的路径中环境不会激活的错误 #4615
- 修复阻止使用 pipenv 锁的错误 –pre #4642
2020.11.15 (2020-11-15)
Bug修复
- 修复带前导反斜杠的可执行脚本无法通过
pipenv run执行的问题。 #4368 - 修复即使 ref 已更改,VCS 依赖项始终满足的错误。 #4387
- 将可接受的哈希类型限制为仅 SHA256。 #4517
- 修复Windows平台下
pipenv scripts的输出。 #4523 - 修复解析器使用错误部分来验证约束的错误。 #4527
供应库
- *; 更新供应商依赖项:
- *;*
colorama从0.4.3到0.4.4
python-dotenv从0.10.3到0.15.0first从2.0.1到2.0.2iso8601从0.1.12到0.1.13parse从1.15.0到1.18.0pipdeptree从0.13.2到1.0.0requests从2.23.0到2.25.0idna从2.9到2.10urllib3从1.25.9到1.26.1certifi从2020.4.5.1到2020.11.8requirementslib从1.5.15到1.5.16attrs从19.3.0到20.3.0distlib从0.3.0到0.3.1packaging从20.3到20.4six从1.14.0到1.15.0semver从2.9.0到2.13.0toml从0.10.1到0.10.2cached-property从1.5.1到1.5.2yaspin从0.14.3到1.2.0resolvelib从0.3.0到0.5.2pep517从0.8.2到0.9.1zipp从0.6.0到1.2.0importlib-metadata从1.6.0到2.0.0importlib-resources从1.5.0到3.3.0#4533
- *;*
2020.11.4 (2020-11-04)
功能和改进
- 添加新命令
pipenv scripts以显示来自 Pipfile 的快捷方式。 #3686 - 从 URL 检索包文件哈希以加速锁定过程。 #3827
- 将缺失的
--system选项添加到pipenv sync。 #4441 - 新增选项对
--header/--no-header到pipenv 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
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
2020.6.2 (2020-06-02)
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 - 修复了
requirementslibAST 解析器中阻止解析setup.py文件以获取依赖项元数据的问题。 #4298 - 修复 Pipenv 无法实现会话交互的问题 #4305
2020.5.28 (2020-05-28)
功能和改进
pipenv install和pipenv sync将不再尝试在安装过程中安装满意的依赖项。 #3057, #3506- 添加了对
setup.py文件中直接 url 依赖项的解析的支持,以尊重PEP-508样式的 URL 依赖项。 #3148 - 添加了对所有依赖项类型解析的全面支持,包括直接 URL、zip 存档、tarball 等。
- 改进了错误处理和格式。
- 引入了改进的跨平台流包装器,以获得更好的
stdout和stderr一致性。 #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/v2021.5.29/source 不包含 url 字段时,引发 PipenvUsageError。 #2373
- 修复了导致可编辑包解析有时失败并显示无用的 setuptools 相关错误消息的错误。 #2722
- 修复了由于依赖系统实用程序
which和where而导致错误的问题,这些实用程序在某些系统上可能并不总是存在。 - 修复了当目标$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/v2021.5.29/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 install和pipenv 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.py和setup.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.9cached_property:
1.4.3=>1.5.1地狱犬:
1.2.0=>1.3.1点击完成:
0.5.0=>0.5.1colorama:
0.3.9=>0.4.1distlib:
0.2.8=>0.2.9idna:
2.7=>2.8jinja2:
2.10.0=>2.10.1markupsafe:
1.0=>1.1.1orderedmultidict:
(new)=>1.0包装:
18.0=>19.0解析:
1.9.0=>1.12.0pathlib2:
2.3.2=>2.3.3pep517:
(new)=>0.5.0pexpect:
4.6.0=>4.7.0pipdeptree:
0.13.0=>0.13.2pyparsing:
2.2.2=>2.3.1python-dotenv:
0.9.1=>0.10.2pythonfinder:
1.1.10=>1.2.1pytoml:
(new)=>0.1.20请求:
2.20.1=>2.21.0requirementslib:
1.3.3=>1.5.0scandir:
1.9.0=>1.10.0shellingham:
1.2.7=>1.3.1六:
1.11.0=>1.12.0tomlkit:
0.5.2=>0.5.3urllib3:
1.24=>1.25.2vistir:
0.3.0=>0.4.1yaspin:
0.14.0=>0.14.3
删除了供应商依赖 cursor。 #3298
更新了
pip_shims以支持具有新 pip 版本的--outdated。 #3766更新供应商的依赖项和调用
更新供应商和修补的依赖项 - 更新
piptools、pip、pip-shims、``tomlkit` 上的补丁修复依赖项调用 - 修复自定义 ``InstallCommand` 实例化 - 更新 ``PackageFinder` 用法 - 修复 ``Bool` 来自 ` 的字符串化尝试`tomlkit`
- 更新了供应商依赖项:
属性:
`18.2.0=>`19.1.0证书:
`2018.10.15=>`2019.3.9cached_property:
`1.4.3=>`1.5.1地狱犬:
`1.2.0=>`1.3.1点击:
`7.0.0=>`7.1.1点击完成:
`0.5.0=>`0.5.1colorama:
`0.3.9=>`0.4.3contextlib2:
`(new)=>`0.6.0.post1distlib:
`0.2.8=>`0.2.9funcsigs:
`(new)=>`1.0.2导入库元数据
`1.3.0=>`1.5.1importlib-resources:
`(new)=>`1.4.0idna:
`2.7=>`2.9jinja2:
`2.10.0=>`2.11.1markupsafe:
`1.0=>`1.1.1more-itertools:
`(new)=>`5.0.0orderedmultidict:
`(new)=>`1.0包装:
`18.0=>`19.0解析:
`1.9.0=>`1.15.0pathlib2:
`2.3.2=>`2.3.3pep517:
`(new)=>`0.5.0pexpect:
`4.6.0=>`4.8.0pip-shims:
`0.2.0=>`0.5.1pipdeptree:
`0.13.0=>`0.13.2pyparsing:
`2.2.2=>`2.4.6python-dotenv:
`0.9.1=>`0.10.2pythonfinder:
`1.1.10=>`1.2.2pytoml:
`(new)=>`0.1.20请求:
`2.20.1=>`2.23.0requirementslib:
`1.3.3=>`1.5.4scandir:
`1.9.0=>`1.10.0shellingham:
`1.2.7=>`1.3.2六:
`1.11.0=>`1.14.0tomlkit:
`0.5.2=>`0.5.11urllib3:
`1.24=>`1.25.8vistir:
`0.3.0=>`0.5.0yaspin:
`0.14.0=>`0.14.3zipp:
`0.6.0
删除了供应商依赖 cursor。 #4169
添加和更新供应商依赖项以适应
safety供应商: - safety(none)=>1.8.7- dparse [X136X ] =>0.5.0- pyyaml(none)=>5.3.1- urllib31.25.8- 证书2019.11.28=>2020.4.5.1- pyparsing2.4.6=>2.4.7]resolvelib0.2.2=>0.3.0- importlib-metadata1.5.1=>1.6.0- [pip-shi]0.5.1=>0.5.2- requirementslib1.5.5=>1.5.6#4618X]#4618X更新了供应商
pip=>20.0.2和pip-tools=>5.0.0。 #4215将供应商依赖项更新到最新版本以进行安全和错误修复:
需求库
1.5.8=>1.5.9参观
0.5.0=>0.5.1jinja2
2.11.1=>2.11.2点击
7.1.1=>7.1.2日期工具
(none)=>2.8.1backports.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_version和python_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
- 更新了
requirementslib和pythonfinder以修复多个错误。 #3254 - Pipenv 现在将在使用
--skip-lock安装时忽略哈希值。 #3255 - 修复了多个 pipenv 进程尝试创建同一目录时 pipenv 可能崩溃的问题。 #3257
- 修复了有时会阻止成功创建项目 Pipfile 的问题。 #3260
pipenv install现在将在不与--system组合时取消设置PYTHONHOME环境变量。 #3261- Pipenv 将通过抑制警告对标准输出的使用并改为写入标准错误来确保警告不会干扰解析过程。 #3273
- 修复了阻止环境变量(例如
PIPENV_DEV或PIPENV_SYSTEM)被正确解析和实现的问题。 #3278 - 安装 Python 后清除 pythonfinder 缓存。 #3287
- 修复了某些依赖项的哈希解析中的竞争条件,这些依赖项缺少缓存条目或新的 Pipenv 安装。 #3289
- Pipenv 现在将尊重 VCS 依赖锁上的顶级引脚。 #3296
供应库
- *; 更新供应商依赖项以解决解析输出解析和 python 查找:
- *;*
pythonfinder 1.1.9 -> 1.1.10
requirementslib 1.3.1 -> 1.3.3vistir 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 - 添加了对
--bare到pipenv 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.24requests 2.19.1 => 2.20.0shellingham ``1.2.6 => 1.2.7tomlkit 0.4.4. => 0.4.6vistir 0.1.6 => 0.1.8pythonfinder 0.1.2 => 0.1.3requirementslib 1.1.9 => 1.1.10backports.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.2vistir 0.1.6 => 0.2.4pythonfinder 1.1.2 => 1.1.8requirementslib 1.1.10 => 1.3.0#3096
- *;*
- 切换到
tomlkit进行解析和写入。 从供应商处删除prettytoml和contoml。 #3191 - 更新了
requirementslib以帮助解析本地和远程存档。 #3196
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
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添加到回退选项(以及SHELL和PYENV_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正确地将
verbose和debug标志传递给解析器子进程,以便它生成适当的输出。 这也解决了 #2527 的修复引入的错误。 #2732所有标记现在都包含在
pipenv lock --requirements输出中。 #2748修复了标记分辨率中可能导致重复和非确定性标记的错误。 #2760
修复了依赖解析器中的一个错误,该错误在处理基于
setup.py的依赖解析时会导致常规问题。 #2766- 更新了供应商依赖项:
pip-tools(更新并修补到最新版本,具有pip 18.0兼容性)pip 10.0.1 => 18.0click 6.7 => 7.0toml 0.9.4 => 0.10.0pyparsing 2.2.0 => 2.2.2delegator 0.1.0 => 0.1.1attrs 18.1.0 => 18.2.0distlib 0.2.7 => 0.2.8packaging 17.1.0 => 18.0passa 0.2.0 => 0.3.1pip_shims 0.1.2 => 0.3.1plette 0.1.1 => 0.2.2pythonfinder 1.0.2 => 1.1.0pytoml 0.1.18 => 0.1.19requirementslib 1.1.16 => 1.1.17shellingham 1.2.4 => 1.2.6tomlkit 0.4.2 => 0.4.4vistir 0.1.4 => 0.1.6#2802,
修复了 pipenv 在 WORKON_HOME 目录不存在时崩溃的错误。 #2877
修复 pip 不是从 pipenv 的 patched 加载,而是从系统 1 加载 #2912
修复了与
pip 18.1版本相关的各种错误,这些错误阻止锁定、安装、同步和转储到requirements.txt文件。 #2924
供应库
皮尤不再出售。 入口点
pewtwo、包pipenv.pew和pipenv.patched.pew被删除。 #2521将
pythonfinder更新到主要版本1.0.0以进行集成。 #2582更新 requirementslib 以修复在解析格式错误的 VCS URI 时可能引发
UnboundLocalError的错误。 #2617供应新库
vistir和pip-shims、tomlkit、modutil和plette。更新供应商库: -
scandir到1.9.0-click-completion到0.4.1-semver到2.8.1-shellingham至1.2.4-pytoml至0.1.18-certifi至2018.8.24- [X1819X] X203X] -requirementslib至1.1.5-pythonfinder至1.0.2-pipdeptree至0.13.0-X4 ] 到0.9.1#2639
- 更新了供应商依赖项:
pip-tools(更新并修补到最新版本,具有pip 18.0兼容性)pip 10.0.1 => 18.0click 6.7 => 7.0toml 0.9.4 => 0.10.0pyparsing 2.2.0 => 2.2.2delegator 0.1.0 => 0.1.1attrs 18.1.0 => 18.2.0distlib 0.2.7 => 0.2.8packaging 17.1.0 => 18.0passa 0.2.0 => 0.3.1pip_shims 0.1.2 => 0.3.1plette 0.1.1 => 0.2.2pythonfinder 1.0.2 => 1.1.0pytoml 0.1.18 => 0.1.19requirementslib 1.1.16 => 1.1.17shellingham 1.2.4 => 1.2.6tomlkit 0.4.2 => 0.4.4vistir 0.1.4 => 0.1.6#2902,
改进的文档
- 简化了测试配置过程。 #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@hostURL 规范化的错误。 #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
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.6到0.2.7。jinja2 从版本
2.9.5到2.10。pathlib2 从版本
2.1.0到2.3.2。从版本
2.8.0解析为2.8.4。pexpect 从版本
2.5.2到2.6.0。从版本
2.18.4到2.19.1的请求。idna 从版本
2.6到2.7。从版本
2018.1.16到2018.4.16的证书。包装从版本
16.8到17.1。六个从版本
1.10.0到1.11.0。从版本
0.2.0到1.0.1的需求库。
此外,scandir 已被供应商提供和修补,以避免在回退到 pathlib2 时导入主机系统二进制文件。 #2368