用python封裝自己的包上傳到Pypi

2021-09-14 00:48:33 字數 3057 閱讀 7088

本文假定你一定有一定的python基礎,並懂得怎麼安裝使用第三方工具包,其實也很簡單,安裝包就是要先再本地環境安裝pip,然後如果要安裝其他工具包的話就使用指令(沒有許可權就要使用sudo):

pip install
下面就開始說怎麼打乙個自己的包並上傳到pypi了

比如我們要打包乙個名字要sghello的包,首先建立乙個專案(專案名隨便取,不需要與包名sghello相同),專案的層級結構如下(完整的層級結構,dist是打包時候生成的):

首先在新建乙個sghello的資料夾作為專案包,在專案下建立src包和setup.py檔案,setup.py結構如下:

from distutils.core import setup

from setuptools import find_packages

setup(name = 'sghello', # 包名

version = '2019.03.09', # 版本號

description = '',

long_description = '',

author = '',

author_email = '',

url = '',

license = '',

install_requires = ,

classifiers = [

'intended audience :: developers',

'operating system :: os independent',

'natural language :: chinese (simplified)',

'programming language :: python',

'programming language :: python :: 2',

'programming language :: python :: 2.5',

'programming language :: python :: 2.6',

'programming language :: python :: 2.7',

'programming language :: python :: 3',

'programming language :: python :: 3.2',

'programming language :: python :: 3.3',

'programming language :: python :: 3.4',

'programming language :: python :: 3.5',

'topic :: utilities'

],keywords = '',

packages = find_packages('src'), # 必填,就是包的**主目錄

package_dir = , # 必填

include_package_data = true,

)#!/usr/bin/env python

幾個重要引數說明:

install_requires=[

'six>=1.5.2',

'parsel>=1.1',

'pydispatcher>=2.0.5',

'service_identity',

]

然後在src包下建乙個__init__.py和sghello包(最後的包名叫sghello這裡的包就命名為sghello),__init__.py裡面什麼都不用寫,是python包的結構規範。

接著在sghello包下建.py的模組檔案去實現你這個包所要實現的功能,比如上圖中的hello.py,就實現乙個hello效果,就跟平常寫python模組一樣,隨便寫邏輯:

def testprint():

print("hello package sghello!!")

最後在sghello包下再建乙個__init__.py檔案,內容如下:

from __future__ import absolute_import

from .hello import *

__version__ = '1.0.0'

__license__ = ''

其中第一句from __future__ import absolute_import必不可少,from .模組名 import * 是匯入你所寫的模組(所有寫的模組都要匯入),否則這個模組就不能被識別。

然後再回到專案所在主目錄,也就是第一步中建立的setup.py檔案目錄,開始打包了:

完成後會生成乙個dist目錄,裡面的壓縮包就是等會要上傳到pypi.org的包,此外src目錄下會生成乙個sghello.egg-info的資料夾,這是包的一些說明檔案,可不管。

接下來就是去註冊賬號,如果有賬號的請忽略,記住你的賬號和密碼,後面上傳包會使用。

接下來就是上傳你的包了,這裡使用twine上傳,如下:

##沒有就先安裝

sudo pip install twine

#上傳包,期間會讓你輸入註冊的使用者名稱和密碼

twine upload dist/*

上傳完成了會顯示success,我就不演示了,然後再pypi.org上就可以看到你的包了,如下:

如果要使用的話就在本地使用pip install sghello就可以使用了,大功告成,收工!!

python打包上傳至pypi實踐

在這裡 很簡單,直接註冊就好 注意參考標準目錄檔案,常用結構如 readme.md docs project init.py main.py modulea init.py packagea.py moduleb init.py setup.py tests modulea test package...

打包上傳自己的Pypi 親身填坑 絕對可用

首先我對於pypi其實並沒有特別的見解,也用的不是很熟練,但是我經歷了一次非常痛苦的上傳過程。主要是版本 格式 python更新過快等問題。其他的部落格說的其實很多如何去上傳打包,但是要不是過時了,要不就是寫的不是很淺顯。所以如果你就是想盡快上傳成功乙個自己的pypi包,那麼你來對了,繼續看下去吧,...

python使用自己封裝的庫

我想做乙個隨機生成使用者資訊的工具庫 人名隨機,性別隨機,還有粉絲隨機。中國人名分姓和名,我用first name.txt存姓,用last name.txt存名 分別解析2個檔案,得到我們需要的資料,實現 ln path users cykj desktop last name.txt fn pat...