在pypi上发布包的实用程序集合

twine的Python项目详细描述


绳线

对于在pypi上发布python包,tween是一个实用工具。

它提供独立于构建系统的源代码和二进制文件的上传 新的和现有的分发工件 项目

我为什么要用这个?

tween的目标是通过改进 安全性和可测试性。

使用 tween 的最大原因是它能够安全地验证 无论 底层的python版本,而不管是否 python setup.py upload将正确且安全地工作,具体取决于 在构建系统上,python版本和底层操作 系统:< /P>

其次,它允许您预创建分发文件。 python setup.py upload仅允许您上载 使用 distutils setuptools 构建,并在相同的环境中创建 命令调用。这意味着你不能测试 您将要上载到pypi的确切文件,以确保它在 正在上载。

最后, tween 允许您预先签署文件并传递 .asc 文件进入命令行调用( 绳线上载 myproject-1.0.1.tar.gz myproject-1.0.1.tar.gz.asc )。这使您能够 确保您将 gpg 密码键入 gpg 本身而不是其他,因为你将直接成为 执行 gpg --分离符号 -a <;filename>;

功能

  • 验证的https连接
  • 上传不需要执行setup.py
  • 上载已创建的文件,允许测试 发行前的发行版
  • 支持上传任何打包格式(包括 控制盘

安装

$ pip install twine

使用绳线

  1. 以正常方式创建一些分布:

    $ python setup.py sdist bdist_wheel
    
  2. 使用 tween 上传到 测试pypi 并验证一切正常。绳线将自动提示您输入用户名和密码:

    $ twine upload --repository-url https://test.pypi.org/legacy/ dist/*
    username: ...
    password:
    ...
  3. 上传至 pypi

    $ twine upload dist/*
    
  4. <> >完成!

有关使用 tween 将包上载到pypi的更多文档 python打包用户指南

钥匙圈支架

不要每次上载分发内容时都键入密码,twine 允许您使用钥匙圈安全地存储用户名和密码。

要使用keyring,必须首先安装keyring软件包:

  • 在windows和macos上,您只需要安装keyring,例如, PIP安装 --用户 钥匙圈
  • 在Linux上,除了 keyring 包之外,还需要确保 已安装python3 dbus系统包。例如, apt安装 蟒蛇3 dbus 。有关详细信息,请参见钥匙圈的安装说明。

安装keyring后,您可以使用 keyring 程序设置 要用于每个包索引(存储库)的用户名和密码 使用绳线上载到。

要设置测试pypi的用户名和密码,请运行以下命令。 钥匙圈将提示您输入密码:

$ keyring set https://test.pypi.org/legacy/ your-username
# or
$ python3 -m keyring set https://test.pypi.org/legacy/ your-username

要设置pypi的用户名和密码,请再次运行此命令, keyring 将提示输入密码:

$ keyring set https://upload.pypi.org/legacy/ your-username
# or
$ python3 -m keyring set https://upload.pypi.org/legacy/ your-username

下次运行 tween 时,它将提示您输入用户名,并从密匙环中获取相应的密码。

< div > 注

如果您在无头环境中使用Linux(例如 服务器)您需要执行一些附加步骤以确保keyring可以 安全地储存秘密。请参见在无头Linux系统上使用keyring在无头Linux系统上使用keyring。

禁用钥匙圈

在某些情况下,钥匙圈的存在可能是有问题的。禁用 keyring并按照提示输入密码,卸载keyring 或者如果这不是一个选项,您也可以将keyring配置为禁用。

有关 讨论如何做到这一点。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
amazon web services Java AWS s3:如何使用Md5预签名url设置和上载内容   twitter使用java从推文中排除一些单词   如何在GUI java中添加延迟时间   java程序,如何使用Outputstream发送两次消息   java为什么是javax。在将Yasson与JSONB一起使用时,Glassfish中的json需要作为依赖项吗?   如何从dist文件夹中读取文件   java如何获取与模式匹配的文件列表   java如何使用Intent从Android应用程序发送彩信?   java限制对Spring的依赖,同时又不丧失框架的功能   java是否将捕获异常报告给Firebase/Fabric等?   用jdbcjava实现mysql分页   给定URI的java注释检索   java是序列化/反序列化公共枚举的简单方法?   java如何使用jMockit模拟本机方法