• 为什么打包源码
    如果你想让你的实现的python代码,通过pip install 方式供所有人进行下载;那就需要将代码上传到PyPi上,这样才能让所有人使用;

如何打包源码上传:

  • 前提条件:

1、有一个pypi官网账号;注册地址
2、更新pip版本到最新:py -m pip install --upgrade pip
3、通过pip安装twine:要使用twine来上传代码;
4、安装编译工具:pip install --upgrade build

  • 创建项目结构:

第一步,创建本地目录结构;

daletou/
└── src/└── daletou/├── __init__.py└── dlt.py

以上除了src和__init__.py为固定值,其他都可以自定义;目录结构需保持一致;

其中__init__.py是为了将目录作为包导入,默认可以为空。
dlt.py是包中的一个模块,主要是提供的功能供下载人调用

如在dlt.py中输入如下代码:
代码中提供的一个函数,返回指定的字符串;
此功能是最终上传的pypi后提供给外部的方法;

from random import sampledef random_dlt(num=1,reds_pre=None,blue_pre=None):result = []for n in range(num):if reds_pre is None:reds = sample([n for n in range(1,36)],5)if blue_pre is None:blues = sample([n for n in range(1,13)],2)reds.sort()blues.sort()result.append(' '.join(red_balls) + ' + '+ ' '.join(blue_balls))return '\n'.join(result)

第二步:创建上传所需的文件;

最终得文件结构如下:

daletou/
├── LICENSE
├── pyproject.toml
├── README.md
├── setup.py
├── src/
│   └── daletou/
│       ├── __init__.py
│       └── dlt.py
  • 文件说明:

pyproject.toml告诉构建工具构建项目所需的内容。
打开pyproject.toml并输入以下内容:

[build-system]
requires = ["setuptools>=42"]
build-backend = "setuptools.build_meta"

README.md 是包的描述信息,markdown格式书写;

# study Package
This is a simple study package.

setup.py是setuptools的构建脚本。它告诉 setuptools 您的包(例如名称和版本)以及要包含的代码文件。
打开setup.py并输入以下内容。更改name 以包含您的用户名;这可确保您拥有唯一的包名称,并且您的包不会与其他人按照本教程上传的包冲突。


import setuptoolswith open("README.md", "r", encoding="utf-8") as fh:long_description = fh.read()setuptools.setup(name="daletou",version="0.0.1",author="Author",author_email="author@example.com",description="example package",long_description=long_description,long_description_content_type="text/markdown",#url="",#project_urls={},package_dir={"": "src"},packages=setuptools.find_packages(where="src"),python_requires=">=3.6",
)

部分属性说明:

  • name是您的包的分发名称。这可以是任何名称;
  • version是包版本。
  • author并author_email用于标识包的作者。
  • description是一个简短的、一句话的包摘要。
  • long_description是包的详细说明。
  • long_description_content_type: 描述使用什么类型的标记。
  • url是项目主页的 URL。可不写。
  • project_urls 显示的任意数量的链接。通常是文档、问题跟踪器等。
  • package_dir是一个字典,src目录被指定为根包。
  • packages 包含在分发包中的所有 Python导入包的列表;
  • python_requires给出项目支持的 Python 版本。

还有有个配置文件setup.cfg,相对于setup.py,此文件配置是静态元数据,内容基本不变;推荐使用setup.py配置;
具体可参考pypi官网解释;


LICENSE是许可文件,参考以下输入既可;

Copyright (c) 2018 The Python Packaging AuthorityPermission 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.

  • 编译打包:

在pyproject.toml文件同级目录;打开命令行工具;
执行命令:

python -m build

开始编译打包

打包完成后,会生成dist文件和打包文件;

  • 源码上传:

首先执行命令

twine check dist/*

检查是否存在问题,有问题提示,需要解决;
若无问题;执行以下命令上传;

twine upload dist/*

  • 验证是否可以安装:

    访问上传成功的地址,是否存在你上传的包;
    使用pip install *** 验证是否可以安装;

注意:如果使用的镜像不是官网,例如国内使用最多的清华镜像,可能需要等5分钟以上才能安装,镜像同步需要时间;

python教程之打包python源码上传的PyPI官网相关推荐

  1. gradle打包并将源码上传到私服

    gradle打包并将源码上传到私服 主要依赖Maven Publish Plugin插件,Maven Publish Plugin 在build.gradle: apply plugin: 'java ...

  2. ROS探索总结(七)(八)(九)——smartcar源码上传 键盘控制 操作杆控制

    ROS探索总结(七)--smartcar源码上传 看到前面写的博客还是帮助了很多ROS的学习者,我感到非常荣幸.其实我也是一名ROS的新手,ROS的相关资料少,上手难度大,我现在也在摸索着学习,还希望 ...

  3. NODEMCU学习笔记-01 esp8266 WIFI杀手 源码上传版

    NODEMCU学习笔记-01 esp8266WIFI杀手 动手前的准备 NODEMCU和ESP8266 ARDUINO IDE GITHUB CSDN 让我们开始吧 连接开发板并安装驱动 安装ardu ...

  4. php文件上传到虚拟主机,php源码上传到虚拟主机(php源码上传到服务器)

    php网站的源码在上传到虚拟主机之前,需要做什么修改本人小白,只知道需. 这个啊,倒是简单,你下载个ftp软件,登陆上传即可,不过要注意传对目录,一般的虚拟主机都有好几目录的,要传合适,具体的可以咨询 ...

  5. 前端小游戏2048(一步步详解附带源代码,源码上传到csdn,可以免费下载)

    2048小游戏 2048是前端开发必经的一个小游戏,2048小游戏包含了HTML,CSS和JavaScript. 简介 <2048>,是一款益智小游戏,这款游戏是由年仅19岁的意大利程序员 ...

  6. 最新代shua网秒shua订单量源码 上传即可使用

    介绍: 代shua网shua订单量源码,上传即可使用 网盘下载地址: http://kekewl.cc/d8glZFEPCeM 图片: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接 ...

  7. 如何将php源码上传到虚拟机,php源码怎么放到虚拟主机里

    php源码怎么放到 1.虚拟主机准备 首先,我们要购买一款能支持PHP语言的虚拟主机,可以考虑直接购买 购买好后,我们将FTP信息给记录下来,待用. 2.PHP源码准备 使用PHP开发的网站程序.软件 ...

  8. python 百度云api_Python使用百度API上传文件到百度网盘代码分享

    # coding:UTF-8 import urllib import urllib2 __author__ = 'Administrator' from poster.encode import m ...

  9. (附源码)基于vue框架潮牌官网设计与实现 毕业设计010955

    摘 要 随着社会的发展,计算机的优势和普及使得潮牌官网的开发成为必需.潮牌官网主要是借助计算机,通过对首页.站点管理(轮播图.公告栏)用户管理(管理员.注册用户)内容管理(潮流资讯.资讯分类)商城管理 ...

最新文章

  1. python怎么读xlsx_用python读取xlsx文件
  2. mysql启用组提交变量_MySQL的COMMIT_ORDER模式下组提交分组实现与BUG案例源码剖析...
  3. SAP CRM WebClient UI F2页面里from pre-processing table标签位的含义
  4. 【C++grammar】文件I/O流的基本用法
  5. android 足球游戏,足球游戏哪个好玩,安卓单机足球游戏哪个好玩
  6. Linux安全基础:grep命令的使用
  7. 使用tensorflow object detection api训练自己的数据集
  8. 写好规范 Java 代码去大厂!
  9. 怎样使用libmad
  10. Web Api 返回图片流给前端
  11. 1992-2021合集 全国大学生数学建模竞赛(历年赛题题目+定位分析)
  12. 【附源码】计算机毕业设计SSM小区宠物管理系统
  13. 《货币金融学》期末复习题
  14. 解读《美国国家BIM标准》 – BIM能力成熟度模型(十二)
  15. chrome 插件 html代码,【chrome 插件一】开发一个简单chrome浏览器插件
  16. 第3章【思考与练习4】数据清洗,从studentsInfo.xlsx 文件的“Group1”表单中读取数据。数据填充,使用习题1的数据,使用列的平均值填充“体重”和“成绩”列的NaN数据。
  17. PSSP之特征提取(PSSP protein secondary structure prediction)
  18. python画几种树
  19. 作为兼并重组的重要方式之一,企业合并、分立的具体形式?
  20. excel系列【下拉项二选一】

热门文章

  1. mysql的strict_MySQL Strict SQL MODE
  2. 【微信小程序】 apache配置https,nginx配置https
  3. 【定位不准的烦心事系列】第1篇:谈谈卫星定位的位置干扰
  4. Bugku,Web:各种绕过哟
  5. BZOJ_4327_JSOI2012 玄武密码_AC自动机
  6. 粤嵌GEC6818开发板-入门感慨篇
  7. python 如何调试uc浏览器_Python爬虫教程-10-UserAgent和常见浏览器UA值
  8. 谷粒商城-分布式基础篇2
  9. Jekins构建触发器Build Triggers:定时构建配置
  10. 阿里P9失业码农资产1.5亿、北京四套房,选择对于个人命运究竟有多重要?