Python构建包、上传包详细步骤

1、从git上拉取最新的代码

2、在当前项目目录中创建setup.py文件

setup.py

 1 # coding: utf-8
 2  3 """打包
 4 """
 5 import setuptools
 6 from datetime import datetime
 7 from src.qc_document_parser import __version__
 8  9 version = datetime.now().strftime("%Y.%m.%d.%H.%M.%S")
10 with open("README.md", encoding="utf8") as f:
11     long_description = f.read()
12 13 setuptools.setup(
14     name="packages_name",
15     version="版本号",
16     url="",
17     download_url="",
18     author="醍醐灌顶",
19     author_email="",
20     description="描述",
21     long_description=long_description,
22     packages=setuptools.find_packages("src"),
23     package_dir={"name": "src/xxx"},
24     python_requires='>=3.9',
25     install_requires=[
26         "依赖1>=4.10.0",
27         "依赖2>=0.6.0",
28         "lxml>=4.8.0",
29         "PyYAML>=6.0",
30         "pydantic>=1.8.2",
31     ],
32 )

 

3、创建一个dist目录(构建的包会被放置在该目录下)

4、打包

# 构建源代码包
python3 setup.py sdist

5、发布

python311 setup.py sdist upload -r 地址

  

1. python311
含义:指定 Python 3.11 解释器来运行命令。
作用:确保使用 Python 3.11 版本来构建和上传包。如果你的系统中安装了多个 Python 版本,这可以避免版本冲突。
注意:如果你的系统中没有安装 Python 3.11,或者你希望使用其他版本,可以替换为 python3 或 python。
2. setup.py
含义:这是 Python 项目中的一个脚本文件,通常位于项目根目录。
作用:setup.py 是一个 Python 脚本,用于定义包的元数据(如名称、版本、依赖关系等),并提供命令来构建、安装和分发包。
注意:只有在项目中存在 setup.py 文件时,这个命令才能正常运行。
3. sdist
含义:sdist 是 setup.py 提供的一个命令,用于生成源代码分发包(source distribution)。
作用:运行 python311 setup.py sdist 会根据 setup.py 中的定义,将项目代码打包成一个 .tar.gz 文件(或其他格式),并将其放置在项目根目录下的 dist/ 文件夹中。
输出示例:生成的文件通常类似于 your_package-1.0.0.tar.gz。
4. upload
含义:upload 是 setup.py 提供的一个命令,用于将生成的包上传到 PyPI 或其他兼容的包索引服务器。
作用:这个命令会将 dist/ 文件夹中的包上传到指定的服务器。
注意:
这个命令在现代 Python 工具链中已经被废弃,推荐使用 twine 工具来上传包。
如果你使用的是旧版本的 setuptools,upload 命令可能仍然可用,但需要确保服务器支持 PyPI 的上传协议。
5. -r
含义:-r 是 upload 命令的一个参数,用于指定上传的目标仓库(repository)。
作用:通过 -r 参数,你可以指定包上传到的服务器地址。
示例:
如果不指定 -r,包会默认上传到 PyPI 的官方服务器(https://upload.pypi.org/legacy/)。
在你的命令中,-r http://123.56.140.160:7105 表示将包上传到私有的 pypiserver 服务器。
6. pypi地址
含义:这是私有 PyPI 服务器的地址。
作用:指定包上传的目标服务器。
注意:
确保服务器正在运行,并且你有权限上传包。
如果服务器需要认证(如用户名和密码),你需要在上传时提供这些信息。

 

 
posted @ 2025-02-14 22:25  醍醐灌顶hl  阅读(163)  评论(0)    收藏  举报