当前位置: 首页 > news >正文

开源自定义Python库并上传到PyPi

0. 准备工作

推荐环境需求:
Ubuntu20.04及以上
python3.8以上

0.1 安装git

sudo apt update
sudo apt-get install git

0.2 安装Python相关库

pip install twine wheel

0.3 注册一个GitHub账户

注册地址: https://github.com/
请添加图片描述

0.4 注册一个PyPi账户

注册地址: https://pypi.org/account/register/

在这里插入图片描述

0.5 安装令牌管理应用

这里推荐一个GitHub开源项目:https://github.com/beemdevelopment/Aegis

在这里插入图片描述

1. 创建GitHub仓库

2.1 新建仓库

登录上自己的GitHub账户,在主页点击创建仓库的图标

在这里插入图片描述

2.2 填写仓库信息

按照下图填写即可

在这里插入图片描述

2.3 设置SSH key

打开一个虚拟终端运行:

$ ssh-keygen -t rsa -C "<你的GitHub账户>"

查看Key

$ ls ~/.ssh
id_rsa  id_rsa.pub  known_hosts

id_rsa id_rsa.pub就是 SSH Key 的秘钥对,id_rsa 是私钥,不能泄露出去,id_rsa.pub 是公钥。

$ cat ~/.ssh/id_rsa.pub

在这里插入图片描述

2.4 上传公钥到GitHub

登录到GitHub之后,点击自己的头像,然后点击列表中的Settings

在这里插入图片描述

然后点击SSH and GPG keys

在这里插入图片描述

在弹出的新界面中点击 New SSH key

在这里插入图片描述

填写信息,将cat ~/.ssh/id_rsa.pub命令查询到的内容复制到下面的key一栏

在这里插入图片描述

**注意:**点击Add SSH key后会跳转到验证GitHub账户的界面,输入自己的密码登录即可

在下面即可看到刚才添加的公钥

在这里插入图片描述

2. 本地项目上传至GitHub仓库

首先打开一个虚拟终端,输入以下命令,测试GitHub连通性

$ ssh -T git@github.com
Hi LeurDeLis! You've successfully authenticated, but GitHub does not provide shell access.

设置GitHub用户名和邮箱,用户名为注册时填写的名字, 邮箱为注册GitHub时的账户

$ git config --global user.email xxx@xxx.com
$ git config --global user.name “xxxxx”

查看是否添加成功

$ git config -l
user.email=xxx@xxx.com
user.name=“xxxxx”

1.1 创建项目目录

创建目录结构如下,例如我的项目名为BusServoControl__init__.py文件要和源码放在同一级目录下

BusServoControl/
├── LICENSE
├── README.md
├── setup.py
└── BusServoControl/├── __init__.py└── BusServoControl.py

注意: 项目名要和GitHub上面创建的仓库名保持一致

1.2 git初始化

使用 git init 命令,可以将一个普通的目录转变为一个可以使用 Git 进行版本控制的代码库。在代码库中,Git 将跟踪和管理代码的历史记录、分支和更改。

$ git init

http://www.dtcms.com/a/187338.html

相关文章:

  • 利用 Python 进行量化的主要步骤
  • .Net HttpClient 使用Json数据
  • 原生小程序+springboot+vue医院医患纠纷管理系统的设计与开发(程序+论文+讲解+安装+售后)
  • 桑德拉精神与开源链动2+1模式AI智能名片S2B2C商城小程序的协同价值研究
  • GPT-4.1和GPT-4.1-mini系列模型支持微调功能,助力企业级智能应用深度契合业务需求
  • 运用数组和矩阵对数据进行存取和运算——NumPy模块 之六
  • 面试中被问到谈谈你对threadlocal的理解
  • 是 OpenCV 的 CUDA 模块中用于在 GPU 上对图像或矩阵进行转置操作函数cv::cuda::transpose
  • 职坐标AIoT开发技能精讲培训
  • 通过POI实现对word基于书签的内容替换、删除、插入
  • 随言随语(十二):盖章
  • Hadoop的目录结构和组成
  • Springboot之类路径扫描
  • hadoop中创建MySQL新数据库数据表
  • mybatis中${}和#{}的区别
  • 【PmHub后端篇】PmHub中基于Redis加Lua脚本的计数器算法限流实现
  • 可视化图解算法38:重建二叉树
  • 在企业级智能体浪潮中,商业数据分析之王SAS或将王者归来
  • 数据挖掘入门-二手车交易价格预测
  • 鸿蒙北向应用开发: deveco5.0 创建开源鸿蒙项目
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(20):复习
  • 第五十七篇 Java接口设计之道:从咖啡机到智能家居的编程哲学
  • Kafka原理深度剖析
  • Spring Boot Swagger 安全防护全解析:从旧版实践到官方规范
  • 基于智能家居项目 解析DHT11温湿度传感器
  • C++23 views::zip 和 views::zip_transform (P2321R2) 深入解析
  • [传输层]TCP协议
  • Node.js 中的 URL 模块
  • 医疗系统开发架构和技术路线建议-湖南某三甲医院
  • 开源模型应用落地-qwen模型小试-Qwen3-8B-融合VLLM、MCP与Agent(七)