发布Python包到pypi
官方文档
打包 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.org
和https://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相关推荐
- 在pypi上发布python包详细教程
使用Python编程中Python的包安装非常方便,一般都是可以pip来安装搞定:pip install <package name>,我们自己写的python也可以发布在pypi上,很简 ...
- python3.7扩展库是什么_Python3.4以后的版本中,____________库用于安装管理Python扩展包,________________库用于发布Python包。_学小易找答案...
[填空题]Python3.4以后的版本中,____________库用于安装管理Python扩展包,________________库用于发布Python包. [判断题]Directions: The ...
- 【python】上传 Python 包到 pypi 官网
一. 概述 在上一篇[爬虫]将 Scrapy 部署到 k8s文章中提到在自定义 spiderkeeper 镜像时报错,所以自己基于它的源码提交了一个叫做 spiderkeeper-new 的 pyth ...
- 利用setuptools发布Python程序到PyPI,为Python添砖加瓦
pip install的东西从哪里来的? 从PyPI (Python Package Index)来的,官网是: https://pypi.python.org/pypi/ 执行pip instal ...
- 发布python项目到pypi,以便供他人用pip install安装
写完项目之后,操作如下: 文章目录 一.发布前的打包准备 步骤一:修改项目的__init__.py文件 步骤二:新建setup.py文件 步骤三:打包项目 二.发布项目 步骤一:注册pypi账号密码 ...
- 引入yml依赖包_手把手教你发布 Python 项目开源包
编译:机器之心,作者:Gabriel Lerner.Nathan Toubiana 好不容易码了个 python 项目,是不是很兴奋?那么怎么把这个项目发出去让大家看到呢?本文作者写了一份在 GitH ...
- python包和模块关系_Python包和模块的分发详细介绍
发布Python包 上一篇介绍了如何使用别人的轮子,现在我们讨论下如何自己造轮子给别人用. 作为一个流行的开源开发项目,Python拥有一个活跃的贡献者和用户支持社区,这些社区也可以让他们的软件可供其 ...
- Python,你会构建Python包了吗?教你几分钟构建出来
前言 构建包的过程有些复杂,但从长远来看是值得的,尤其是可以创建属于自己的Python包.本文的目的是通过对构建一个新发行包的案例研究,让您了解需要构建什么以及如何构建python包的基础知识. 开始 ...
- 如何构建一个Python包
1.前言 构建包的过程有些复杂,但从长远来看是值得的,尤其是可以创建属于自己的Python包.本文的目的是通过对构建一个新发行包的案例研究,让您了解需要构建什么以及如何构建python包的基础知识. ...
最新文章
- python【力扣LeetCode算法题库】2-两数相加
- python使用界面-如何使用python图形化界面wxPython
- 笔记本网络计算机和设备不可见,xp电脑不显示无线网络的七种原因和解决方法...
- python 获取文件名_真实需求 | Python+os+openpyxl 批量获取Excel的文件名和最大行数...
- 2008R2Win7管理九DNS冗余和恢复
- wordpress acf字段 不同样式_提升wordpress执行效率二次开发实录
- 一文带你看懂物联网开源操作系统
- 关于scanf对换行的吸收
- 花书+吴恩达深度学习(五)正则化方法(防止过拟合)
- Cognos8.3解决方案
- 新浪微博android apk,新浪微博app(新浪微博手机版) V9.4.2安卓版
- wincc新手之路-安装与授权
- 使用colab训练faster-rcnn
- Scratch3.0 桌面版下载安装使用
- iOS从零开始与Swift:简而言之的Swift
- HTML5系列代码:使用空格符号
- Beautify Panel 2 for Mac(PS人像磨皮美容插件)中文版
- GPU运算能力对比(详细)
- 【MySQL学习】使用视图、存储过程、游标和触发器
- 关于火狐浏览器无法倍速看百度网盘视频