• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    如何将自己写的模块上传到pypi
    POST TIME:2021-10-18 14:39

    楔子

    我们在安装第三方包的时候,直接一个pip install xxx命令就搞定了,然后pip会去pypi上寻找我们要安装的包,然后下载下来。

    而pypi(Python Package Index )你可以看成是官方维护的一个大仓库,专门用来存储世界各地的程序员编写的第三方模块。我们使用pip进行安装的时候就会去这个仓库里面找,找到了进行下载,找不到就提示不存在。

    当然我们在安装的时候还可以指定清华源、豆瓣源,因为pypi在国外,下载有时候比较慢,而一旦指定了国内的源,那么就不会去pypi上下载了,所以你可以看成国内也有仓库,专门负责搬运pypi里面的内容。

    上传模块至pypi

    总共分为三步:编写模块、编译模块、上传模块。

    编写模块

    我们看一下要上传到pypi的模块长什么样子。

    然后我们看看代码长什么样子。

    # calc.py
    def add(x: int, y: int) -> int:
     return x + y
     
     
    def sub(x: int, y: int) -> int:
     return x - y
     
    # __init__.py
    from .calc import add, sub

    然后最重要的就是编写setup.py。

    # setup.py 是一个 setuptools 的构建脚本,其中包含了项目和代码文件的信息
    # 如果没有需要先安装,pip install setuptools
    import setuptools
     
    setuptools.setup(
     # 项目的名称
     name="anser-module-upload",
     #项目的版本
     version="0.0.1",
     # 项目的作者
     author="布诺妮亚",
     # 作者的邮箱
     author_email="hanser@baka.com",
     # 项目描述
     description="简单的加减运算上传测试",
     # 项目的长描述
     long_description="简单的加减运算上传测试",
     # 以哪种文本格式显示长描述
     long_description_content_type="text/markdown", # 所需要的依赖 
     install_requires=[], # 比如["flask>=0.10"]
     # 项目主页
     url="https://www.baidu.com",
     # 项目中包含的子包,find_packages() 是自动发现根目录中的所有的子包。
     packages=setuptools.find_packages(),
     # 其他信息,这里写了使用 Python3,MIT License许可证,不依赖操作系统。
     classifiers=[
      "Programming Language :: Python :: 3",
      "License :: OSI Approved :: MIT License",
      "Operating System :: OS Independent",
     ],
    )

    编译

    在上传代码之前,我们需要将代码编译。除了setuptools之外,我们还需要一个模块wheel,如果没有则需要安装。

    pip install --user --upgrade setuptools wheel

    然后对我们的setup.py进行编译。

    python setup.py sdist bdist_wheel

    编译成功之后会在项目中生成多个目录,其中有一个dist目录是我们需要上传的。

    上传

    然后就是上传了,我们需要前往(https://pypi.org/account/register/)注册一个账号,然后再安装一个模块:twine,因为上传需要使用到它。

    pip install --user --upgrade twine

    安装完成之后,就可以使用如下命令上传 dist 文件夹里面的文件。

    python -m twine upload --repository pypi dist/*

    我们看到上传成功,下面去页面看一下。

    注意:这里为了区分,我们把根目录名和模块名取得不一样,我们需要pip install hanser-module-upload,然后在site-packages下面会有一个hanser目录,也就是我们所使用的模块。但是一般情况下,这两者都是一样的。比如:我们安装pandas,那么得到的模块也叫做pandas。

    下面就来试一试吧:

    成功安装,当然也是可以使用的。

    以后如果我们自己写了一个比较不错的模块的时候,就可以发布到pypi上面。

    以上就是如何将自己写的模块上传到pypi的详细内容,更多关于模块上传到pypi的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
    • python 如何上传包到pypi
    • 如何使用Docker搭建pypi私有仓库
    • 搭建pypi私有仓库实现过程详解
    • 完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
    • 将python包发布到PyPI和制作whl文件方式
    • python自制包并用pip免提交到pypi仅安装到本机【推荐】
    • 使用docker+devpi搭建本地pypi源的方法
    • 使用豆瓣提供的国内pypi源
    • Python上传package到Pypi(代码简单)
    • Python中pip安装非PyPI官网第三方库的方法
    上一篇:如何用Python生成二维码、解析二维码
    下一篇:如何用python实现复制粘贴功能
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信