官方文档

打包 Python 项目

开始

创建项目

以上一篇文章的代码为例

目录结构如下

src 存放代码的目录scrapy-redis-bf 需要上传的包
tests/ 存放一些测试文件,可以为空
LICENSE 开源许可证
pyproject.toml 项目设置
README.md

其中主要关心的是pyproject.toml, 许可证的话在https://choosealicense.com/随便弄一个就行

build-system

首先需要选择构建工具,官方列出了四种:hatchling、setuptools、Flit和PDM

hatchling

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

setuptools

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

选择哪一种就将配置写入pyproject.toml,任意一种都可以

pyproject.toml

填写一些包的信息

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"[project]
name = "scrapy-redis-bf"
version = "0.0.8"
authors = [{ name="kanade", email="kanade@blisst.cn" },
]
description = "scrapy_redis use bloomfilter"
readme = "README.md"
license = { file = "LICENSE" }
requires-python = ">=3.7"
classifiers = ["Programming Language :: Python :: 3","License :: OSI Approved :: MIT License","Operating System :: OS Independent",
]
dependencies = ["scrapy-redis >= 0.6.8",
][project.urls]
"Homepage" = "https://github.com/kanadeblisst/scrapy_redis_bf"
"Bug Tracker" = "https://github.com/kanadeblisst/scrapy_redis_bf/issues"

其他的一看应该就知道了,dependencies是你上传的包需要安装的依赖

接着改下README.md然后就可以开始构建了

构建whl

先安装:pip install build

然后再pyproject.toml所在目录运行 python -m build接着会生成两个文件到dist目录下,其中的whl文件就可以直接用pip安装了

创建pypi账号

有两个网站:https://test.pypi.orghttps://pypi.org ,前者大概是用来测试用的

这里以前者为例,打开网站,注册账号->验证邮箱->创建API tokens

https://pypi.org/manage/account/一直滑到Add API token 填写一个名字,然后选择scope点Add token,会得到一个以pypi-开头的字符串,就是token

接着在用户目录创建.pypirc文件,比如Windows就在:C:\Users\Administrator下创建,Administrator是登陆的用户名。内容如下,修改下token到password后面即可。注意: pypi和testpypi两个网站的账号和token都是不一样的

[distutils]
index-servers =pypitestpypi[pypi]
repository = https://upload.pypi.org/legacy/
username = __token__
password = pypi-xxxxx[testpypi]
repository = https://test.pypi.org/legacy/
username = __token__
password = pypi-xxxxx

上传到pypi

安装包:pip install twine

上传: twine upload --repository testpypi dist/* 这里的testpypi就是上面.pypirc文件里的,也可以写pypi

上传的时候可能会出现网络错误,需要先设置的国外的代理,命令行执行:set HTTPS_PROXY=127.0.0.1:10809

安装包

testpypi: pip install --index-url https://test.pypi.org/simple/ scrapy-redis-bf
pypi: pip install --index-url https://pypi.org/simple/ scrapy-redis-bf

如果是其他源的话,估计同步过去得要点时间

发布Python包到pypi相关推荐

  1. 在pypi上发布python包详细教程

    使用Python编程中Python的包安装非常方便,一般都是可以pip来安装搞定:pip install <package name>,我们自己写的python也可以发布在pypi上,很简 ...

  2. python3.7扩展库是什么_Python3.4以后的版本中,____________库用于安装管理Python扩展包,________________库用于发布Python包。_学小易找答案...

    [填空题]Python3.4以后的版本中,____________库用于安装管理Python扩展包,________________库用于发布Python包. [判断题]Directions: The ...

  3. 【python】上传 Python 包到 pypi 官网

    一. 概述 在上一篇[爬虫]将 Scrapy 部署到 k8s文章中提到在自定义 spiderkeeper 镜像时报错,所以自己基于它的源码提交了一个叫做 spiderkeeper-new 的 pyth ...

  4. 利用setuptools发布Python程序到PyPI,为Python添砖加瓦

    pip install的东西从哪里来的? 从PyPI (Python Package Index)来的,官网是:  https://pypi.python.org/pypi/ 执行pip instal ...

  5. 发布python项目到pypi,以便供他人用pip install安装

    写完项目之后,操作如下: 文章目录 一.发布前的打包准备 步骤一:修改项目的__init__.py文件 步骤二:新建setup.py文件 步骤三:打包项目 二.发布项目 步骤一:注册pypi账号密码 ...

  6. 引入yml依赖包_手把手教你发布 Python 项目开源包

    编译:机器之心,作者:Gabriel Lerner.Nathan Toubiana 好不容易码了个 python 项目,是不是很兴奋?那么怎么把这个项目发出去让大家看到呢?本文作者写了一份在 GitH ...

  7. python包和模块关系_Python包和模块的分发详细介绍

    发布Python包 上一篇介绍了如何使用别人的轮子,现在我们讨论下如何自己造轮子给别人用. 作为一个流行的开源开发项目,Python拥有一个活跃的贡献者和用户支持社区,这些社区也可以让他们的软件可供其 ...

  8. Python,你会构建Python包了吗?教你几分钟构建出来

    前言 构建包的过程有些复杂,但从长远来看是值得的,尤其是可以创建属于自己的Python包.本文的目的是通过对构建一个新发行包的案例研究,让您了解需要构建什么以及如何构建python包的基础知识. 开始 ...

  9. 如何构建一个Python包

    1.前言 构建包的过程有些复杂,但从长远来看是值得的,尤其是可以创建属于自己的Python包.本文的目的是通过对构建一个新发行包的案例研究,让您了解需要构建什么以及如何构建python包的基础知识. ...

最新文章

  1. python【力扣LeetCode算法题库】2-两数相加
  2. python使用界面-如何使用python图形化界面wxPython
  3. 笔记本网络计算机和设备不可见,xp电脑不显示无线网络的七种原因和解决方法...
  4. python 获取文件名_真实需求 | Python+os+openpyxl 批量获取Excel的文件名和最大行数...
  5. 2008R2Win7管理九DNS冗余和恢复
  6. wordpress acf字段 不同样式_提升wordpress执行效率二次开发实录
  7. 一文带你看懂物联网开源操作系统
  8. 关于scanf对换行的吸收
  9. 花书+吴恩达深度学习(五)正则化方法(防止过拟合)
  10. Cognos8.3解决方案
  11. 新浪微博android apk,新浪微博app(新浪微博手机版) V9.4.2安卓版
  12. wincc新手之路-安装与授权
  13. 使用colab训练faster-rcnn
  14. Scratch3.0 桌面版下载安装使用
  15. iOS从零开始与Swift:简而言之的Swift
  16. HTML5系列代码:使用空格符号
  17. Beautify Panel 2 for Mac(PS人像磨皮美容插件)中文版
  18. GPU运算能力对比(详细)
  19. 【MySQL学习】使用视图、存储过程、游标和触发器
  20. 关于火狐浏览器无法倍速看百度网盘视频

热门文章

  1. windows安装Pillow报错找不到zlib
  2. YOLO 超详细入门02 v2 (含代码及原文)
  3. Linux系统下安装wgrib2
  4. linux 挂在u盘变成只读,linux系统下优盘挂载之文件系统后只读解决方法
  5. 项目管理 | 项目资源管理(一)
  6. 使用OpenGL实现场景构建
  7. 凯迪拉克5月软文-V设计
  8. 蓝牙协议分析(2)_协议架构
  9. Pr 中英文版本切换批处理文件
  10. 使用malloc动态内存分配一个二维数组