IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 如何上传你的python包到PyPi -> 正文阅读

[Python知识库]如何上传你的python包到PyPi

介绍如何将代码上传到PyPi,并通过pip install 方式供所有人进行下载

  1. 注册Pypi账号
    Pypi账号注册

在这里插入图片描述

2. 创建上传代码的项目工程

让我们为上传准备代码。首先,应该从代码中删除所有的“print”语句。当您在使用库时,命令提示符中充斥着不属于您的打印消息,这是很烦人的——因此请将它们全部删除。如果您想要通知用户某些活动,请使用日志记录

还要确保不要包含存在于函数类之外的代码,否则每次有人导入你的库时,这段代码都会运行。如果你想在类中包含示例代码(这是合法的),把它包装到" __main__ "函数中

if __name__ == "__main__":
    your example code goes here

2.1 创建项目结构

2.1.1 创建项目

创建项目 project

2.1.2 创建存放所有源码的包

  • 创建包: 创建一个文件夹,该文件夹的名称与您希望的包名称完全一致,如cvyuan。将要传送的所有源码文件和类放到这个文件夹中。
  • 创建__init__.py的文件。在这个文件中,除了import语句,你什么都不写,它有以下模式:
from packagename.Filename import Classname

__init__.py文件用于标记你希望用户通过包接口访问哪些类。

源码文件结构如下:

|--Project
|---Mylib 
|-----  __init__.py
|-----  File1.py
|-----  File2.py

本例子创建cvyuan包,项目结构如下:
在这里插入图片描述
__init__.py文件 Import 访问的类如下:

from cvyuan.FaceMeshModule import FaceMeshDetector
from cvyuan.HandTrackingModule import handDetector

2.1.3 创建PyPi需要的文件

PyPi需要三个文件:

  • setup.py
  • setup.cfg
  • LICENSE.txt
  • README.md (optinal but highly recommended)

将所有这些文件放在你的包文件夹之外:

|--Project
|---Mylib 
|-----  __init__.py
|-----  File1.py
|-----  File2.py
|---setup.py
|---setup.cfg
|---LICENSE.txt
|---README.md

我们把这些文件一个一个说明一遍

setup.py
setup.py文件包含关于PyPi需要的包的信息,比如它的名称、描述、当前版本等。复制并粘贴以下代码,并替换从你匹配内容:

from distutils.core import setup
setup(
  name = 'YOURPACKAGENAME',         # How you named your package folder (MyLib)
  packages = ['YOURPACKAGENAME'],   # Chose the same as "name"
  version = '0.1',      # Start with a small number and increase it with every change you make
  license='MIT',        # Chose a license from here: https://help.github.com/articles/licensing-a-repository
  description = 'TYPE YOUR DESCRIPTION HERE',   # Give a short description about your library
  author = 'YOUR NAME',                   # Type in your name
  author_email = 'your.email@domain.com',      # Type in your E-Mail
  url = 'https://github.com/user/reponame',   # Provide either the link to your github or to your website
  download_url = 'https://github.com/user/reponame/archive/v_01.tar.gz',    # I explain this later on
  keywords = ['SOME', 'MEANINGFULL', 'KEYWORDS'],   # Keywords that define your package best
  install_requires=[            # I get to this in a second
          'validators',       # 可以加上版本号,如validators=1.5.1   
          'beautifulsoup4',
      ],
  classifiers=[
    'Development Status :: 3 - Alpha',      # Chose either "3 - Alpha", "4 - Beta" or "5 - Production/Stable" as the current state of your package
    'Intended Audience :: Developers',      # Define that your audience are developers
    'Topic :: Software Development :: Build Tools',
    'License :: OSI Approved :: MIT License',   # Again, pick a license
    'Programming Language :: Python :: 3',      #Specify which pyhton versions that you want to support
    'Programming Language :: Python :: 3.4',   
    'Programming Language :: Python :: 3.5', 
    'Programming Language :: Python :: 3.6',
  ],
)

setup.cfg
创建一个名为setup.cfg的新文件。文件中的内容指定如下:

# Inside of setup.cfg
[metadata]
description-file = README.md

LICENSE.txt

使用此文件定义所有license详细信息。最可能的情况是,从这个网站复制-粘贴许可文本到license .txt文件。我总是在我的项目中使用MIT的许可,但请随意使用您自己的许可。

MIT License
Copyright (c) 2018 YOUR NAME
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.

README.md (Optional)
可以通过这个网站创建README文件,创建好后进行下载

3. 将包上传到PyPi

cd 到 setup.py所在的目录

cd "C://PATH//TO//YOUR//FOLDER"

现在,我们用下面的命令创建一个source distribution:

python setup.py sdist

我们将需要使用twine来上传,所以首先通过pip安装twine:

pip install twine

然后,执行如下命令

twine upload dist/*

此时在项目中出现dist文件,文件下面存放我们打包后的源码
在这里插入图片描述

注:提示twine不是内部或外部命令
尝试执行如下命令:

python-m twine upload --repository dist/*

您将被要求提供您的用户名和密码。提供前面用于注册到PyPi的用户名和密码。

在这里插入图片描述
恭喜,您的包现在已经上传!访问
*https://pypi.org/project/YOURPACKAGENAME/*在线查看您的包
在这里插入图片描述

4 .使用pip安装您自己的包

好,现在我们来测试一下。打开控制台,输入以下命令:

pip install YOURPACKAGENAME

现在打开python SHELL/IDLE并导入你的包,进行项目开发或测试

5 .更新包

如果您能很好地维护您的包,您将需要不时地更改源代码形式。这是很容易的。只需将你的新代码上传到github,创建一个 new release,然后调整setup.py文件(new download_url -根据你的new release tag),然后再次运行setup.py和twin命令(首先导航到你的文件夹!)

python setup.py sdist
twine upload dist/*

最后,通过pip更新你的包,看看你的更改是否有效:

pip install YOURPACKAGE --upgrade

github 代码

参考:https://medium.com/@joel.barmettler/how-to-upload-your-python-package-to-pypi-65edc5fe9c56

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:44:46  更:2022-03-13 21:46:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:37:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码