返回介绍

PART Ⅰ : 容器云OPENSHIFT

PART Ⅱ:容器云 KUBERNETES

PART Ⅲ:持续集成与持续部署

PART Ⅴ:日志/监控/告警

PART Ⅵ:基础

PART Ⅶ:数据存储、处理

PART VIII:CODE

PART X:HACKINTOSH

PART XI:安全

Pypi

发布于 2024-06-08 21:16:46 字数 7542 浏览 0 评论 0 收藏 0

Nexus针对Python制品仓库的管理与使用

官方文档:https://help.sonatype.com/repomanager3/formats/pypi-repositories

Group类型仓库

  • pypi-public

Proxy类型仓库

Hosted类型仓库

  • pypi-hosted

1、pip3配置仓库源

①全局配置

编辑 ~/.pip/pip.conf

[global]

# 用户名密码已配置在URL中。如果密码中包含特殊字符,使用特殊字符对应ASCII码的16进制进行代替。例如:密码中包含的“#”的ASCII为35,对应的16进制表示%23。密码中包含的“/”的ASCII为47,对应的16进制表示%2F。

index-url = http://pypi:******@nexus-ip:8081/repository/pypi-public/simple
trusted-host =  192.168.150.88

②临时配置

pip3 install flask \
-i http://pypi:******@nexus-ip:8081/repository/pypi-public/simple \
--trusted-host 192.168.150.88

注意

2、使用twine上传python制品到私有仓库

①安装twine

pip3 install twine \
-i http://pypi:******@nexus-ip:8081/repository/pypi-public/simple \
--trusted-host 192.168.150.88

②编写setup.py

import setuptools
import os
import requests

# 将README.md中的描述文字作为制品的详细描述
with open("README.md", "r") as fh:
    long_description = fh.read()

# 将requirements.txt中依赖模块的版本信息作为制品的依赖描述
if os.path.exists("requirements.txt"):
    install_requires = io.open("requirements.txt").read().split("\n")
else:
    install_requires = []

setuptools.setup(
    # 项目命名
    name="demotest",
    # 版本
    version="0.0.1",
    # 作者
    author="curiouser",
    # 作者邮箱
    author_email="*******@163.com",
    # 项目制品包的简要描述
    description="test",
    # 项目制品包的详细描述  
    long_description=long_description,
    # 制品包详细描述的格式
    long_description_content_type="text/markdown",
    # 项目代码仓库地址
    url="https://github.com/test",

    packages=setuptools.find_packages(),

    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    install_requires = install_requires,
    # 是否打包文件夹内的所有数据
    include_package_data=true,
    package_data = {
            # If any package contains *.txt or *.rst files, include them:
            'chinesename': ['source/*.txt', "source/*.json"],
    },
    # 如果需要支持脚本方法运行,可以配置入口点
    entry_points={
       'console_scripts': [
           'chinesename = chinesename.run:main'
       ]
    }
)

编写README.md

setuptools官方文档:https://packaging.python.org/guides/distributing-packages-using-setuptools/

setup.py推荐规则:https://github.com/pypa/sampleproject/blob/master/setup.py

③打包项目

python3 setup.py sdist bdist_wheel

# 打完包,会在当前目录下的dist目录下产生源文件tar.gz,分发文件.whl两个项目包

④上传项目包到hosted仓库

# 检测包
twine check dist/*

# 上传包
twine upload dist/* \
--repository-url http://nexus-ip:8081/repository/pypi-hosted/

⑤验证

⑥下载使用

sudo pip3 install demotest==0.0.1
# 或者
sudo pip3 install demotest==0.0.1 \
-i http://pypi:******@nexus-ip:8081/repository/pypi-public/simple \
--trusted-host 192.168.150.88

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文