本文假定你一定有一定的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...