## 一、注冊一個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