- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经将 travis.ci 设置为在标记推送到 master 时自动将包部署到 pypi。
问题是,在我的 setup.py
中,我必须指定包版本,有时我忘记了这会导致未部署的包(或者 Pypi 会覆盖旧版本吗?)
但是,有没有办法将 pypi 上的包版本匹配为分配给提交的标记?
最佳答案
我已经在我的一个项目中完成了。
[EDIT N°2] 我写了一个小教程,您可以在这里找到:https://github.com/73VW/Publishing-to-PyPI-with-pbr-and-Travis
你可以找到它here on Github .
Travis 的主要工作如下:
/(\d+\.)?(\d+\.)?(\*|\d+)$/
)如果标签类似于 1.0.0
,它将用于 pypi 版本。
您仍然可以转换正则表达式以匹配 v1.0.0
等标签。使用类似 /v?(\d+\.)?(\d+\.)?(\*|\d+)$/
[编辑 N°3] 这是完全错误的,如果标签与此处描述的内容不匹配,PBR 无法定义版本 https://docs.openstack.org/pbr/3.1.0/semver.html .
我使用 PBR做这个。
A library for managing setuptools packaging needs in a consistent manner.
检查我的存储库中的以下文件:
如果您仍有问题,请随时在 github 上标记我 (@73VW) 或直接在这里提问。
祝你有美好的一天。
在 git 中,您可以使用以下命令获取最后一个标签 git describe --abbrev=0 --tags
因此,如果您的设置类似于以下内容:
from setuptools import setup
...
setup(
...
version='NEWVERSIONHERE',
...
)
您可以使用 shell 脚本将 NEWVERSIONHERE
替换为您的标签版本。
我尝试了以下方法(在本地,而不是在 Travis 上)并且有效。
#!/bin/sh
set -xe
TAG=$(git describe --abbrev=0 --tags)
sed -i "s/NEWVERSIONHERE/${TAG}/g" setup.py
-i
标志用于就地查找和替换。因此它会更改您指定的文件。
只需将此代码放入 shell 脚本中,不要忘记 chmod
它以便能够运行它,并从 Travis 运行它。 p>
示例 .travis.yml
文件:
dist: trusty
sudo: required
language: python
python: 3.6
cache: apt
install:
- pip install -r requirements.txt
- chmod 777 YOURSCRIPT.sh
script:
- your tests here
- ./YOURSCRIPT.sh
deploy:
skip_cleanup: true
provider: pypi
distributions: sdist bdist_wheel
on:
tags: true
branch:
- master
- /(\d+\.)?(\d+\.)?(\*|\d+)$/
user: YOUR PYPI USERNAME
password:
secure: YOUR PYPI ENCODED PASSWORD
希望这对您有所帮助!
关于python - Travis pypi 包版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48943503/
在PyPy的 build 阶段,该脚本会生成一些看起来非常有趣的漂亮 ASCII 字符。每个字符代表什么?如何解释这个输出?在生成这种 ASCII 艺术时,PyPy build 到底在做什么? 最佳答
如何使用 PyPy(最好是 pypy3)而不是带有 poetry 的标准 python? 也就是说,pyproject.toml中应该存储什么?是否还需要进行其他更改? 最佳答案 事实证明,它就像安装
将 pypy 实现转换为 c 文件并在配备 2G 内存和 Intel Core2 2GHz CPU 的现代笔记本上构建 pypy-c 需要花费数小时。 我知道这是一个 CPU 密集型任务,但它必须这么
每次在 PyPI 上发布 Virtualenv 的新版本时,我都希望收到通知,最好通过电子邮件或 RSS 提要。这可能吗? 最佳答案 是的,可以从 pypi.org 获得 RSS 提要,请参阅:htt
我有一个 Python 扩展,需要针对基于 Windows 的 Appveyor 持续集成服务上的 PyPy 解释器进行编译。我如何在那种环境中获得 PyPy? 最佳答案 将此 PowerShell
PyPy GIL 是 RPython 中 PyPy 解释器实现的一部分,还是 translate.py 自动添加的东西?即,如果我要在 RPython 中编写自己的新语言解释器并通过 translat
我已阅读 PyPy -- How can it possibly beat CPython?以及无数其他事情,但我无法理解用 Python 编写的东西如何比 Python 本身更快。 我能想到的唯一方
我正在处理一些 OpenAI 的 API 集成。我在安装 tiktoken(用于 OpenAI 模型的快速 BPE 标记器)时遇到问题。 当我尝试在我的 macbook 机器上运行时: pip3 in
我正在处理一些 OpenAI 的 API 集成。我在安装 tiktoken(用于 OpenAI 模型的快速 BPE 标记器)时遇到问题。 当我尝试在我的 macbook 机器上运行时: pip3 in
这可能是一个非常愚蠢的问题,但是“PyPy”和“PyPI”之间有什么区别?它们是一回事吗? 最佳答案 PyPy是 python 的替代实现: PyPy is a fast, compliant alt
我想在与 Python 2.7 版本兼容的 window 7 上卸载 pypy 版本。控制面板的“卸载程序”中没有 pypy。到目前为止,我还没有找到任何文档。 最佳答案 PyPy 不会在 Windo
PyPy 是否在编译时进行静态类型检查以在编译时捕获类型错误?如果不是,像 HM 类型推断这样的东西是否有助于在编译时捕获这些错误? 最佳答案 否 在两个帐户上。 (我假设 PyPy 是指具有 JIT
我在弄清楚如何让我的 Python 包处理到 PyPi 时遇到了一些问题,这样我就可以很容易地将它与其他项目的其他依赖项一起安装(即使用需求条目或简单的“pip install xyz”)-这里列出了
例如,如果我有一个 Pypi 上已经存在的包 foo。我希望能够在我的 setup.py 中使用新版本号进行 git Push origin master 操作,然后 Pypi 以某种方式自动更新其版
新版 PyPy 附带了集成的 Stackless。据我所知,捆绑的 Stackless 与 2001 年的原始 Stackless 不同。所以主要是带有调度器的绿色线程框架。 Greenlet 是 S
我按照指南 How to submit a package to PyPI提交一个包裹。它抛出了以下错误: Traceback (most recent call last): Fi
我使用诗歌创建了一个Python包然后我使用诗歌构建、诗歌发布将我的包发布到 PyPI,但 PyPI 中缺少我的包描述。 该项目托管在 GitHub 中:https://github.com/fsis
我听说过很多关于 PyPy 项目的信息。他们声称它比 CPython 上的 their site 解释器快 6.3 倍。 每当我们谈论 Python 等动态语言时,速度都是最重要的问题之一。为了解决这
我们将 artifactoy 更新到最新版本 5.10.3 以支持 pypi 更新。 在这次更新之后,我们遇到了一些非常慢的 pip install --upgrade 时间。pip install
我一直在 ESP32-WROOM-32D 上使用 uasyncio。在所有测试之后,我正在尝试将固件用于我的其他板,但默认情况下 uasyncio 并未与 micropython 一起安装。我尝试通过
我是一名优秀的程序员,十分优秀!