python打包代码,发布到pypi

目录

1. 准备代码

2. 编写setup.py文件

2.1 LICENSE

2.1.1 常见的开源许可证

3. 准备pypi账号

4. 构建包

5. 安装twine

6. 上传包到pypi

7. 测试pip安装包


1. 准备代码

  • 一个根目录,包含所有代码。
  • 一个 setup.py 文件,其中包含有关您的包的信息(名称、版本、依赖等)。
  • 可选的 README.mdREADME.rst 文件,说明您的项目。
  • 一个 LICENSE 文件,说明您的包的许可证。
  • 一个包含 Python 代码的子目录。
my_package/
  setup.py
  README.md
  LICENSE
  my_package/
    __init__.py
    module1.py
    module2.py

2. 编写setup.py文件

from setuptools import setup, find_packages

setup(
    name='my_package',
    version='0.1',
    packages=find_packages(),
    description='A simple example package',
    long_description=open('README.md').read(),
    # python3,readme文件中文报错
    # long_description=open('README.md', encoding='utf-8').read(),
    long_description_content_type='text/markdown',
    url='http://github.com/yourusername/my_package',
    author='Your Name',
    author_email='your.email@example.com',
    license='MIT',
    install_requires=[
        # 依赖列表
    ],
    classifiers=[
        # 分类信息
    ]
)
  • version:版本号。
  • my_package:包含 Python 代码子目录的名称。
  • description:描述。
  • long_description:读取readme文件
  • url:可不填
  • license:证书类型(下面说明)

2.1 LICENSE

在软件和开源项目中,LICENSE 文件非常重要,它定义了他人可以如何使用、修改、共享你的代码。LICENSE 文件通常包含了特定的许可证全文,这个许可证规定了对代码的使用权限和限制。

2.1.1 常见的开源许可证

  • MIT License:一种非常宽松的许可证,允许他人几乎无限制地使用你的代码。

  • GNU General Public License (GPL):要求任何分发的软件或其衍生品都必须开源。

  • Apache License 2.0:允许商业使用,但要求保留版权和许可证声明。

  • BSD License:一种简单的许可证,有几个不同的变体,但通常都很宽松。

一个典型的 MIT 许可证:

MIT License

Copyright (c) [year] [fullname]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

在这个例子中,你需要将 [year] 替换为当前年份,[fullname] 替换为你的名字或组织名。 

3. 准备pypi账号

地址:https://pypi.org/,注册账号,注册后,需要双因素认证,可使用恢复代码、usb、扫码(支持 TOTP 标准的常用扫码工具,Google Authenticator、Authy、Microsoft Authenticator、LastPass Authenticator)

4. 构建包

setup.py层级,执行命令:

python setup.py sdist bdist_wheel

# 我执行时报了错,先安装wheel
pip install wheel

5. 安装twine

twine 是一个用于上传包到 PyPI 的工具。您可以通过 pip 安装它:

pip install twine

6. 上传包到pypi

twine upload dist/*

上传问题,具体问题具体网上搜素,以下写了两个问题:
(1)setup.py中,名称不能与已有的重复

(2)上传需要输入用户名密码,在pypi账号设置,Account settings中,创建token,账号密码不能上传了,创建后记录好token,然后上传,用户名默认:__token__ 密码:生成的key

7. 测试pip安装包

pip install my_package

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值