明确你正在运行的软件、硬件和版本
- 假设适用于所有安装
项目维护者对于将Python包管理升级为使用新的、令人惊叹的 pipenv
会有什么感觉?
我最近在一个不同的项目(以专业身份)做过这件事,这里的操作类似,并提供所有的pipenv好处。
尝试提供我们可以用于重现问题的步骤
考虑因素(我脑海中的想法)
dev_setup.sh
的install_venv()
将受到影响(而不是手动创建venv,让pipenv管理它)requirements.txt
将被弃用,用Pipfile
和Pipfile.lock
替换setup.py
也会更新
对预期条件尽可能具体,以及与预期条件的偏差。
切换到pipenv的好处是巨大的。最重要的一点是我们不再需要管理特定版本的依赖包。一级包需求可以锁定到特定版本(以及二级依赖项),但任何时候我们都可以升级版本并运行CI/CD,二级版本不需要手动挑选。
Pipenv还具有一些可以添加到CI/CD的安全检查。
提供日志文件或其他输出,帮助我们查看错误
无
将任何有用的文件上传到问题中,以帮助我们进行调查
无
7条答案
按热度按时间nc1teljy1#
(请明确:我提供做这项工作) -只是想在投入时间之前获得意见和支持)
aoyhnmkz2#
我从未在项目中使用过它,但我认为它看起来相当不错。我一直在犹豫是否在这里尝试一下,因为可能由于我们用来创建发布包的 Package 机制( dh-virtualenv )而出现阻塞。
它声称它使用了requirements.txt...但是也许可以从pipfile/lock-file生成一个requirements.txt?
o2g1uqev3#
嗯,我确实不熟悉
dh-virtualenv
。起初它似乎不支持 Pipfile/pipenv。然而,pipenv 支持随时从Pipfile.lock
生成requirements.txt
(我们可以在构建时生成它),所以这不是一个无法克服的问题。编辑:@forslund ,dh-virtualenv pkg 构建过程的代码在哪里?在核心中找不到。
mzsu5hc04#
我本以为很早以前就提交了一个问题,但现在找不到了。也许我在聊天中提过。我已经使用pipenv有几年了,它表现得相当好...我的理解是,Python软件基金会支持将Pipfile(以及可能的Pipfile.lock)作为标准的想法。
8iwquhpp5#
@fermulator 打包仓库仍然没有开放。我需要查看它以获取上传服务的API密钥(如果有的话)。
如果你对这个过程感兴趣,这里有一个实验性的桌面包构建脚本:https://github.com/forslund/mycroft-desktop-deb。它是基于用于mark-1的打包脚本,所以你可以在那里看到大部分的工作流程。
那里有一些hacks,可能需要一两把手来用其他版本的Python而不是3.6进行构建......
如果你认为可以生成requirements.txt文件,我非常愿意切换到pipenv。让我们试试吧......我们也可以简化事情,如果有必要的话,手动维护一个requirements.txt文件。
57hvy0tb6#
@forslund ,绝对可以在任何时候使用pipenv生成一个requirements.txt文件以满足遗留(向后兼容)需求,所以这根本不会成为障碍。
啊,如果构建尚未开源,那就可以解释为什么我找不到它了;o。
关于多Python版本支持,我的croft支持哪些版本?(在“系统要求”方面无法在文档中找到)
随时愿意合作/提供帮助(当项目认为是时候开始处理这个问题时)
b0zn9rqh7#
我们目前支持Python 3.4-3.7,但将在下一个大版本(19.08)中放弃对Python 3.4的支持,因为它已经处于生命周期的末尾,而且pip将不再支持它。我的意图是在发布后检查3.8所需的内容。