前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过 Nexus3 搭建 pypi 私服

通过 Nexus3 搭建 pypi 私服

作者头像
用户3147702
发布2022-06-27 13:09:04
1.9K0
发布2022-06-27 13:09:04
举报
文章被收录于专栏:小脑斧科技博客

1. 引言

上一篇文章中,我们详细介绍了如何通过 nexus3 搭建一个 maven 私服。 详解通过 Nexus3.x 搭建 Maven 私服 本文我们来介绍如何通过 nexus3 来搭建一个 python 的 pypi 私服。

2. nexus 配置

打开 nexus。

登录管理员账户,创建仓库。

我们仍然是有三个选择:

他们的区别是:

  1. proxy — 远程仓库的代理,当用户向这个仓库请求一个 artifact,他会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户
  2. hosted — 宿主仓库,用户可以 deploy 到 hosted 中,也可以手工上传构件到 hosted 里,在 central repository 是获取不到的,就需要手工上传到hosted里
  3. group — 仓库组,将上述多个仓库聚合,对用户暴露统一的地址

那么接下来,我们创建一个 hosted 仓库和一个 group 仓库,创建页面配置很简单,这里不赘述了。

3. 上传 python 包

3.1. 编写代码

执行:

mkdir helloworld touch helloworld/init.py vim helloworld/demo.py

代码非常简单,一个类中包含一个静态方法用于输出 helloworld:

代码语言:javascript
复制
class Demo:
    @staticmethod
    def hello():
        print('helloworld')

3.2. 编写 setup.py

我们创建 setup.py。

代码语言:javascript
复制
# coding=utf-8
from setuptools import setup

setup(
    name='helloworld',
    version='1.0',
    author="techlog",
    license="MIT",
    packages=[
        'helloworld'
    ],
    install_requires=[
    ],
    classifiers=[
        "Topic :: Utilities",
        "Topic :: Internet",
        "Topic :: Software Development :: Libraries :: Python Modules"
    ],
)
  • 提示 具体的 setup.py 的编写规范可以参考: https://packaging.python.org/tutorials/distributing-packages/#setup-py
  • 目录结构

3.3. 打包

执行:

python setup.py sdist bdist_wheel 此时目录中新增了很多新的文件:

dist 目录下就是我们需要上传的文件。

3.4. 上传

我们使用 twine 包来上传到私服,官网地址:

https://pypi.org/project/twine/ 执行: pip install twine twine upload —repository-url <url> dist/* <url> 需要替换成我们刚刚搭建的 nexus hosted 私服的 url,在 nexus components 页面有 copy 按钮,点击复制即可。 根据提示填写具有管理员权限的用户名、密码即可。

页面上就可以看到已经上传成功的 pypi 包了。

4. pypi 包的下载和安装

需要安装和下载 pypi 包的话,只需要执行:

pip install helloworld -i <url>/simple —trusted-host <host> 这里 <url> 需要替换成我们刚刚搭建的 nexus group 私服的 url,可以看到安装顺利进行:

5. 调用

编写代码:

代码语言:javascript
复制
from helloworld.demo import Demo

if __name__ == '__main__':
    Demo.hello()

执行代码,打印出了:

helloworld

6. 参考资料

https://pypi.org/project/twine/ https://packaging.python.org/tutorials/packaging-projects/#setup-py。 https://blog.csdn.net/m0_37607365/article/details/79998955。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小脑斧科技博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 引言
  • 2. nexus 配置
  • 3. 上传 python 包
    • 3.1. 编写代码
      • 3.2. 编写 setup.py
        • 3.3. 打包
          • 3.4. 上传
          • 4. pypi 包的下载和安装
          • 5. 调用
          • 6. 参考资料
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档