如何将自己写的模块上传到pypi

下面是如何将自己写的模块上传到pypi的完整攻略:

准备工作

  1. 确认你已经具有pip和setuptools,如果没有请先安装它们。

  2. 注册一个pypi账号,这是为了上传模块时进行身份认证使用的。

  3. 在本地创建你的工程文件夹,使用以下命令创建一个python package

    mkdir your_package_name
    cd your_package_name
    mkdir your_package_name
    touch your_package_name/__init__.py

  4. 创建setup.py文件,其中需要填写模块的基本信息、依赖和使用示例等。以下是示例代码:

    ```
    from setuptools import setup

    with open("README.md", "r") as fh:
    long_description = fh.read()

    setup(
    name="your_package_name",
    version="0.0.1",
    author="Your Name",
    author_email="your_email@example.com",
    description="Your package description",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://your_package_website.com",
    packages=["your_package_name"],
    classifiers=[
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    ],
    install_requires=[
    # your required packages
    ],
    python_requires='>=3.6',
    )
    ```

编码、测试和打包

  1. 编写你的Python代码,建议遵循PEP8规范,使用docstrings编写模块、函数、方法等文档。

  2. 编写完代码之后,可以使用unittest或者pytest等测试框架对代码进行单元测试。

  3. 在目录下创建MANIFEST.in文件,指定需要打包的文件或目录,以下是示例代码:

    recursive-include your_package_name *

  4. 打包你的模块,执行以下命令:

    python setup.py sdist bdist_wheel

    这将会生成一个dist目录,并在其中生成你的模块的tar / zip包和wheel包。

上传到pypi

  1. 安装twine: pip install twine

  2. 首次上传模块前,需要使用以下命令进行注册并输入pypi账号信息:

    twine register dist/*

  3. 上传你的模块:

    twine upload dist/*

    在上传过程中,你需要输入pypi账号的用户名和密码,上传成功后,你的模块就已经成功上传到pypi了。

以上是将自己写的模块上传到pypi的完整攻略。下面是两个示例说明:

示例1:上传一个名为“hello”的模块

  1. 创建一个名为“hello”的文件夹,并在其中创建“init.py”和“hello.py”文件。

    mkdir hello
    cd hello
    touch hello/__init__.py hello.py

  2. 在hello.py文件中编写以下代码:

    def say_hello():
    print('Hello world!')

  3. 创建setup.py文件,填写模块的基本信息和依赖,代码如下:

    ```
    from setuptools import setup

    with open("README.md", "r") as fh:
    long_description = fh.read()

    setup(
    name="hello",
    version="0.0.1",
    author="Your Name",
    author_email="your_email@example.com",
    description="A hello package",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://your_package_website.com",
    packages=["hello"],
    classifiers=[
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    ],
    install_requires=[
    # your required packages
    ],
    python_requires='>=3.6',
    )
    ```

  4. 运行以下命令打包并上传模块:

    python setup.py sdist bdist_wheel
    twine upload dist/*

  5. 在使用该模块的项目中,可以通过以下方式导入模块并使用:

    ```
    from hello import say_hello

    say_hello()
    ```

示例2:上传一个名为“maths”的模块

  1. 创建一个名为“maths”的文件夹,并在其中创建“init.py”和“maths.py”文件。

    mkdir maths
    cd maths
    touch maths/__init__.py maths.py

  2. 在maths.py文件中编写以下代码:

    ```
    def add(x, y):
    return x + y

    def subtract(x, y):
    return x - y
    ```

  3. 创建setup.py文件,填写模块的基本信息和依赖,代码如下:

    ```
    from setuptools import setup

    with open("README.md", "r") as fh:
    long_description = fh.read()

    setup(
    name="maths",
    version="0.0.1",
    author="Your Name",
    author_email="your_email@example.com",
    description="A maths package",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://your_package_website.com",
    packages=["maths"],
    classifiers=[
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    ],
    install_requires=[
    # your required packages
    ],
    python_requires='>=3.6',
    )
    ```

  4. 运行以下命令打包并上传模块:

    python setup.py sdist bdist_wheel
    twine upload dist/*

  5. 在使用该模块的项目中,可以通过以下方式导入模块并使用:

    ```
    from maths import add, subtract

    print(add(1, 2))
    print(subtract(5, 3))
    ```

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何将自己写的模块上传到pypi - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Python中关于列表的常规操作范例以及介绍

    Python中关于列表的常规操作 在Python编程中,列表是一种常用的数据类型,用于表示一个有序的、可变的序列。Python提供了多种方法来操作列表,包括添加删除、修改、排序等。下面将详细介绍Python中关于列表常规操作,包括语法、参数、返回值以及示例说明。 列表的创建 在Python中,我们可以使用方括号[]来创建一个列表。下面是一个示例,演示了如何创…

    python 2023年5月13日
    00
  • Python用requests库爬取返回为空的解决办法

    以下是关于Python用requests库爬取返回为空的解决办法的攻略: Python用requests库爬取返回为空的解决办法 在Python中,requests是一个流行的HTTP库,可以用于向Web发送HTTP请求和接响应。在使用requests库爬取网页时,有时会出现返回为空的情况。以下是Python用requests库爬取返回为空的解决办法的攻略:…

    python 2023年5月14日
    00
  • Python字符串和文件操作常用函数分析

    Python字符串和文件操作常用函数分析 本文将介绍Python字符串和文件操作中常用的函数,包括字符串的基本操作和文件的读写操作。 字符串操作常用函数 字符串拼接 字符串拼接可以使用加号+或者逗号,进行拼接: str1 = "hello" str2 = "world" print(str1 + " &quo…

    python 2023年6月2日
    00
  • python爬虫URL重试机制的实现方法(python2.7以及python3.5)

    下面我会详细讲解“Python爬虫URL重试机制的实现方法”。 什么是URL重试机制? 在爬虫过程中,有时会出现由于网络原因或其他因素导致请求一个URL失败的情况。如果不对这种情况进行特别处理,爬虫程序就会停止工作。为了避免这种情况的发生,我们常常需要对请求失败的URL进行重试,直到请求成功为止。这种对请求失败的URL进行重试的机制就被称为URL重试机制。 …

    python 2023年5月14日
    00
  • Python统计列表元素出现次数的方法示例

    下面是关于Python统计列表元素出现次数的方法的攻略。 什么是列表元素出现次数? 在Python中,列表是由多个元素组成的数据结构。在处理列表时,有时需要统计每个元素出现的次数。例如,对于一个数字列表,我们可能需要查找其中出现最多的数字,或者找到所有出现次数超过一个特定阈值的数字。 方法一:使用count()函数 Python中的列表对象有一个count(…

    python 2023年6月3日
    00
  • Python os.mkdir()与os.makedirs()的使用区别

    当我们需要在Python脚本中创建一个文件夹时,可以使用Python内置的os模块中提供的os.mkdir()函数或os.makedirs()函数。这两个函数都用于在指定路径创建新目录,但它们之间有一些区别,本文将详细介绍其使用区别。 os.mkdir() os.mkdir()函数用来创建单层目录,即在指定路径上创建一个新目录,如果路径的上级目录不存在,则会…

    python 2023年6月2日
    00
  • 还不知道Anaconda是什么?读这一篇文章就够了

    还不知道Anaconda是什么?读这一篇文章就够了 如果你是一名数据分析或机器学习的初学者,那么你一定听说过Anaconda。简单来说,Anaconda是一款全平台的开源Pyton发行版,它能够帮你管理Python库和环境。 为什么要使用Anaconda? 管理Python库避免冲突:使用Anaconda后,你可以使用包管理工具conda来方便地管理Pyth…

    python 2023年5月14日
    00
  • python协程gevent案例 爬取斗鱼图片过程解析

    下面是关于“python协程gevent案例 爬取斗鱼图片过程解析”的完整攻略。 1. 什么是协程 协程是一种轻量级线程,Python的协程是基于生成器的协程。协程与线程的区别在于,线程是抢占式多任务,需要操作系统进行上下文切换,而协程是非抢占式多任务,通过协程程序员来控制何时上下文切换。 Python的协程一般使用yield关键字来实现,使用yield来挂…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部