由 twine python 发布的包未出现在存储库中

Stu*_*ens 5 python pypi twine

我正在尝试将我的 python 包发布到私有存储库。我按照官方指南https://packaging.python.org/en/latest/tutorials/packaging-projects/进行操作,一切似乎都很好。这是终端输出:

\n
(venv) C:\\Users\\xxx\\PycharmProjects\\my_package>twine upload --config-file .pypirc -r pypi dist/*\nUploading distributions to http://xxx/pypi/simple/\nEnter your password:\nUploading my_package-0.1-py3-none-any.whl\n100%|\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 8.03k/8.03k [00:01<00:00, 4.83kB/s]\nUploading my-package-0.1.tar.gz\n100%|\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 7.40k/7.40k [00:00<00:00, 10.3kB/s]\n
Run Code Online (Sandbox Code Playgroud)\n

但发布后,我无法通过在浏览器中打开 url 来查看存储库中的包,也无法通过 pip 安装它。

\n

我注意到 .whl 的名称带有下划线,而 .tar.gz 的名称带有破折号。这可能是问题所在吗?\n我怎样才能找出问题所在?

\n

Art*_*yan 2

当然,您的包上传到私有存储库还是公共存储库并不重要。你甚至可以不上传到Git来发布。

\n

只需 4 个基本步骤即可完成

\n
    \n
  • 创建一个Python包
  • \n
  • setup.py
  • \n
  • 构建包
  • \n
  • 通过发布到 PyPItwine
  • \n
\n

创建一个Python包

\n

在下面的示例中,demoverflow文件夹包含__init__.py,它正在制作demoverflow一个 python 包。

\n
\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 demoverflow\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 demo.py\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\n
Run Code Online (Sandbox Code Playgroud)\n
# demo.py\n\nclass Demo:\n    ...\n
Run Code Online (Sandbox Code Playgroud)\n

import Demoat__init__.py以便能够从中导入它demoverflow(例如from demoverflow import Demo:)

\n
# __init__.py\n\nfrom demo import Demo\n
Run Code Online (Sandbox Code Playgroud)\n

setup.py

\n
from setuptools import setup, find_packages\n\nsetup(\n    name="demoverflow",\n    version="0.0.1",\n    author="Firstname Lastname",\n    author_email="<demoverflow@support.com>",\n    description="My demo package",\n    packages=find_packages(),\n    install_requires=[],\n    keywords=['python'],\n    classifiers=[\n        "Development Status :: 1 - Planning",\n        "Intended Audience :: Developers",\n        "Programming Language :: Python :: 3",\n        "Operating System :: Unix",\n        "Operating System :: MacOS :: MacOS X",\n        "Operating System :: Microsoft :: Windows",\n    ]\n)\n
Run Code Online (Sandbox Code Playgroud)\n

注意:在构建包之前,您应该具有以下文件结构

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 demoverflow\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 demo.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py\n
Run Code Online (Sandbox Code Playgroud)\n

所以setup.py和你的包应该是邻居

\n

构建包

\n

如果你已经安装了setuptools,那么可以运行以下命令来生成 dist 文件夹

\n
python3 setup.py sdist bdist_wheel\n
Run Code Online (Sandbox Code Playgroud)\n

发布到 PyPI

\n

此命令将需要您的 PyPI 帐户的用户名和密码

\n
python3 -m twine upload dist/*\n
Run Code Online (Sandbox Code Playgroud)\n

  • 为了准确回答这个问题,我需要查看您的项目文件,但您没有提供任何文件。所以我给了你一个共同的答案。 (2认同)