当前位置: 首页 > 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

相关文章:

  • 利用 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 创建开源鸿蒙项目
  • 专访|茸主:杀回UFC,只为给自己一个交代
  • 最美西游、三星堆遗址等入选“2025十大年度IP”
  • 全国汽车以旧换新补贴申请量突破1000万份
  • 浙江公开征集涉企行政执法问题线索,包括乱收费、乱罚款等
  • 中方发布会:中美经贸高层会谈氛围是坦诚的、深入的、具有建设性的
  • 苏东坡:人生就是哈哈哈哈哈