如何将 python 包上传到 Nexus sonatype 私人仓库

How to upload the python packages to Nexus sonartype private repo

我已经在 aws 云上配置了 Nexus-OSS-3.14 私有 Python 工件服务器。我想在我的私人存储库服务器上维护我所有与项目相关的 Python 包。

我在本地 Linux 盒子上下载了所有 Python 包,我想将所有 Python 包上传到私人 Python 工件服务器。

我已经尝试了 curl put 请求,但我没有上传,需要您的帮助才能完成。

我试过 curl put 请求:

curl -v -u admin:admin --upload-file boto3-1.9.76-py2.py3-none-any.whl https://artifact.example.com/repository/ASAP-Python-2.7-Hosted/

当我使用该命令时,我收到 404 响应。

我认为推荐的方法是使用 twine,像这样的方法应该有效:

pip install twine
twine upload --repository https://artifact.example.com/repository/ASAP-Python-2.7-Hosted/ boto3-1.9.76-py2.py3-none-any.whl

它应该询问您的用户名和密码。为了让生活更轻松,您可以使用 URL、用户名和密码

创建 $HOME/.pypirc 文件
[nexus]
repository: https://artifact.example.com/repository/ASAP-Python-2.7-Hosted/
username: admin
password: admin

然后当您调用 twine 时,请这样做:

twine upload --repository nexus boto3-1.9.76-py2.py3-none-any.whl

这不是一个硬性要求,但如果您使用的是多用户系统并且您已经在文件中设置了密码,那么您可能应该这样做

chmod 600 $HOME/.pypirc 

Pip(纱线)可供下载。麻线上传。 配置:

小心尾部斜线!

用pip(yarn)下载

pip config edit [--editor [nano|code|...]] [--global|--user] 用于编辑配置

[global]
index = https://nexus.your.domain/repository/pypi/pypi
index-url = https://nexus.your.domain/repository/pypi/simple

或者设置环境变量。 Dockerfile 例如:

ENV \
  PIP_INDEX=https://nexus.your.domain/repository/pypi/pypi \
  PIP_INDEX_URL=https://nexus.your.domain/repository/pypi/simple

或者使用命令行参数pip install --index

用麻线上传

编辑.pypirc:

[distutils]
index-servers =
pypi
[pypi]
repository: https://nexus.your.domain/repository/pypi-hosted/
username: nexususername
password: nexuspassword 

或环境

ENV \
  TWINE_REPOSITORY_URL=https://nexus.your.domain/repository/pypi-hosted/ \
  TWINE_USERNAME=nexususername \
  TWINE_PASSWORD=nexuspassword

或者命令行

twine upload --repository-url