python如何發布自已pip項目


python如何發布自已pip項目
前言
因為自已平時會把一個常用到邏輯寫成一個工具python腳本,像關於時間字符串處理,像關於路徑和文件夾遍歷什么的工具。每一次新建一個項目的時候都要把這些工具程序復制到每個項目中,換一個電腦后還要從github生新下載后再復制到項目中,實在太麻煩。最后想想,還是建一個自已的pip項目會比較好。

第一步:注冊一個PyPi帳號
PyPi注冊網站

在上邊的注冊網站上注冊一個自已的帳號,注冊好后在郵箱激活,一般注冊流程都是這么操作了,這里就不多說了。

第二步:在github上創建一個項目
如果你還沒有使用過github源碼托管網站,可以先注冊一個github的帳戶再創建項目,我一般創建項目用的是官網提供的桌面工具Github Desktop.

Github Desktop的下載地址:https://desktop.github.com

github注冊和創建新項目,這里也不說了,程序員的基本功。

第三步:編寫自已的python項目
我這里只有一個timetool.py和pathtool.py兩個文件
祥情可以查看我的示例項目:
https://github.com/fengmm521/pipProject

先建一個目錄,比如magetool,這個里邊放的是你的項目代碼

在這個magetool目錄里,新建一個__init__.py,這個文件里可以什么都不用寫,然后就是你要發布的.py文件

第四步:編寫setup.py文件
這里重點說明一下這個setup.py文件,因為整個pip項目的發布和上傳都是基於這個setup.py文件完成的。

大家可以看一下我示例項目的setup.py是怎么寫的,其實我也是從網上下載別人寫好的。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

#############################################
# File Name: setup.py
# Author: mage
# Mail: mage@woodcol.com
# Created Time: 2018-1-23 19:17:34
#############################################


from setuptools import setup, find_packages

setup(
name = "magetool",
version = "0.1.0",
keywords = ("pip", "pathtool","timetool", "magetool", "mage"),
description = "time and path tool",
long_description = "time and path tool",
license = "MIT Licence",

url = "https://github.com/fengmm521/pipProject",
author = "mage",
author_email = "mage@woodcol.com",

packages = find_packages(),
include_package_data = True,
platforms = "any",
install_requires = []
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
setup.py中重要的參數有5個:

1.name
name = “magetool”,這個name參數后邊的就是你的項目代碼所在目錄,也是你pip要上傳的項目名稱,其他人用pip install xxx來安裝時,后邊的xxx就是你的這個magetool

2.version
version = “0.1.0”,你工具的版本號,后期你工具更新了,要用pip來更新包的時候,會更新比當前版本號高的新版本。

下邊是pip 更新包的命令

pip install --upgrade <包的名字>
pip install -U <包的名字>
1
2
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
1
2
兩個命令打包好之后都會生成build和dist兩個目錄,打包的文件會放在dist目錄下,供后邊上傳到PyPi服務器

第六步:上傳到PyPi服務器
在上傳前,要建一個文件,$HOME/.pypirc,$HOME目錄在linux或者mac系統下就是~/目錄。在這里建一個.pypirc文件。里邊的內容如下:

[distutils]
index-servers = pypi

[pypi]
username:你的PyPi用戶名
password:你的PyPi密碼
~
1
2
3
4
5
6
7
因為不能使用python setup.py register進行上傳,使用這個上傳會報一個410的錯誤。所以要使用.pypirc文件保存你的PyPi用戶信息,這時使用下載的twine就可以直接上傳了。

在別的地方找到的有說上傳用python setup.py sdist upload命令,但在我這里用這個命令也會一直失敗,所以我用下邊的命令上傳打包好的pip項目,我上傳的是用第五步的,python setup.py sdist命令打包好的項目,

上傳好打包的pip安裝包:

twine upload dist/magetool-0.1.0.tar.gz
1
第七步:使用pip安裝剛剛上傳的包
pip安裝包我這里就不多說了,這個一般用python的都會的

用pip安裝上傳的包:

pip install magetool --user
1
–user參數的意思是安裝給當電腦的當前用戶,要不然會要求系統管理員權限才能安裝。加了–user之后就不用sudo的管理員權限了。


————————————————
版權聲明:本文為CSDN博主「woodcol」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/fengmm521/article/details/79144407


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM