## 一、注册一个pypi账号。
[https://pypi.org/](https://pypi.org/)
## 二、github上创建一个项目。
[https://github.com/](https://github.com/)
## 三、编写自己的python项目。
项目结构(参考):[https://github.com/fengmm521/pipProject](https://github.com/fengmm521/pipProject)
先建一个目录,比如magetool,这个里边放的是你的项目代码。在这个magetool目录里,新建一个\_\_init\_\_.py,这个文件里可以什么都不用写,然后就是你要发布的.py文件
## 四、编写setup.py
~~~
# File Name: setup.py
# Author: wusir
# Mail: wusir666666@163.com
# Created Time: 2019-3-26
#############################################
from setuptools import setup, find_packages
setup(
name = "InitReadme",
version = "0.1.0",
keywords = ("pip", "os"),
description = "pip test",
long_description = "pip test",
license = "MIT Licence",
url = "https://github.com/wusri66666/InitReadme.git",
author = "wusir",
author_email = "wusir666666@163.com",
packages = find_packages(),
include_package_data = True,
platforms = "any",
install_requires = [],
scripts = [],
entry_points={
'console_scripts':['initcli=initcli.cli:main']
},
)
~~~
1.name
name = “InitReadme”,这个name参数后边的就是你的项目代码所在目录,也是你pip要上传的项目名称,其他人用pip install xxx来安装时,后边的xxx就是你的这个InitReadme
2.version
version = “0.1.0”,你工具的版本号,后期你工具更新了,要用pip来更新包的时候,会更新比当前版本号高的新版本。
下边是pip 更新包的命令
pip install --upgrade
pip install -U
3.packages
packages = find\_packages(),这个参数是导入目录下的所有\_\_init\_\_.py包
4.install\_requires
install\_requires = \[\],这是一个数组,里边包含的是咱的pip项目引用到的第三方库,如果你的项目有用到第三方库,要在这里添上第三方库的包名,如果用的第三方版本不是最新版本,还要有版本号。
## 五:打包自已的项目
在代码编写完成,自已测试后没有问题了,就可以打包了。 打包使用下边两个其中一个命令(我使用的是第二个):
$ python setup.py bdist\_egg # 生成类似 edssdk-0.0.1-py2.7.egg,支持 easy\_install
$ python setup.py sdist # 生成类似 edssdk-0.0.1.tar.gz,支持 pip
两个命令打包好之后都会生成build和dist两个目录,打包的文件会放在dist目录下,供后边上传到PyPi服务器
## 六:上传到PyPi服务器
~~~
twine upload dist/*
~~~
执行完这行指令之后,会提示输入pypi的用户名和密码,正常输入就可以。
## 七:pip安装使用
- Python学习
- Python基础
- Python初识
- 列表生成式,生成器,可迭代对象,迭代器详解
- Python面向对象
- Python中的单例模式
- Python变量作用域、LEGB、闭包
- Python异常处理
- Python操作正则
- Python中的赋值与深浅拷贝
- Python自定义CLI三方库
- Python并发编程
- Python之进程
- Python之线程
- Python之协程
- Python并发编程与IO模型
- Python网络编程
- Python之socket网络编程
- Django学习
- 反向解析
- Cookie和Session操作
- 文件上传
- 缓存的配置和使用
- 信号
- FBV&&CBV&&中间件
- Django补充
- 用户认证
- 分页
- 自定义搜索组件
- Celery
- 搭建sentry平台监控
- DRF学习
- drf概述
- Flask学习
- 项目拆分
- 三方模块使用
- 爬虫学习
- Http和Https区别
- 请求相关库
- 解析相关库
- 常见面试题
- 面试题
- 面试题解析
- 网络原理
- 计算机网络知识简单介绍
- 详解TCP三次握手、四次挥手及11种状态
- 消息队列和数据库
- 消息队列之RabbitMQ
- 数据库之Redis
- 数据库之初识MySQL
- 数据库之MySQL进阶
- 数据库之MySQL补充
- 数据库之Python操作MySQL
- Kafka常用命令
- Linux学习
- Linux基础命令
- Git
- Git介绍
- Git基本配置及理论
- Git常用命令
- Docker
- Docker基本使用
- Docker常用命令
- Docker容器数据卷
- Dockerfile
- Docker网络原理
- docker-compose
- Docker Swarm
- HTML
- CSS
- JS
- VUE