成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

自作pip包流程詳解

自作pip包流程詳解

1. 配置環(huán)境
主要是需要安裝Python版本在3.4以上,安裝pip工具,并確保pip,setuptools和wheel是最新的,一般滿足條件。也可以用以下指令更新以下:

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的福安網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

python -m pip install --upgrade pip setuptools wheel

詳情見官網(wǎng)鏈接

2.制作pip包
1)創(chuàng)建工程文件目錄及文件
在目錄內(nèi)分別新建LICENCE、README.md(markdown文件)、requirements.txt、setup.py(鏈接大神的配置模板)文件,注意文件尾綴。其中setup.py可以自己編寫,可以根據(jù)超鏈接下載自己改寫,也可以復(fù)制,指令:(git clone https://github.com/kennethreitz/setup.py) 復(fù)制后在網(wǎng)上修改。

所建目錄及文件詳見下圖:
自作pip包流程詳解
setup.py中參數(shù)配置
樣例代碼:
from futureimport print_function
from setuptools import setup, find_packages
import sys

setup(
name="utilsss",
version="0.1.3",
author="vip", #author_email="huhongping123@163.com",
br/>author_email="huhongping123@163.com",
description="vip Python lib Framework.",
license="MIT",
url="https://github.com/huhongping/vip_utils",
packages=find_packages(),
include_package_data=True,

install_requires=[

],
zip_safe=True,

)
重要參數(shù)解釋:
1.name
name = “utilsss”,這個(gè)name參數(shù)后邊的就是你的項(xiàng)目代碼所在目錄,也是你pip要上傳的項(xiàng)目名稱,其他人用pip install xxx來安裝時(shí),后邊的xxx就是你的這個(gè)magetool

2.version
version = “0.1.0”,你工具的版本號(hào),后期你工具更新了,要用pip來更新包的時(shí)候,會(huì)更新比當(dāng)前版本號(hào)高的新版本。

下邊是pip 更新包的命令

pip install --upgrade <包的名字>
pip install -U <包的名字>

3.packages
packages = find_packages(),這個(gè)參數(shù)是導(dǎo)入目錄下的所有init.py包

4.install_requires
install_requires = [],這是一個(gè)數(shù)組,里邊包含的是咱的pip項(xiàng)目引用到的第三方庫,如果你的項(xiàng)目有用到第三方庫,要在這里添上第三方庫的包名,如果用的第三方版本不是最新版本,還要有版本號(hào)。

更多參數(shù)詳解如下:

參數(shù)說明備注
name 包名稱
version 包版本
author 程序的作者
author_email 程序的作者的郵箱地址
maintainer 維護(hù)者
maintainer_email 維護(hù)者的郵箱地址
url 程序的官網(wǎng)地址
license 程序的授權(quán)信息
description 程序的簡(jiǎn)單描述
long_description 程序的詳細(xì)描述
platforms 程序適用的軟件平臺(tái)列表
classifiers 程序的所屬分類列表
keywords 程序的關(guān)鍵字列表
packages 需要處理的包目錄(通常為包含 init.py 的文件夾)
py_modules 需要打包的 Python 單文件列表
download_url 程序的下載地址
cmdclass 添加自定義命令
package_data 指定包內(nèi)需要包含的數(shù)據(jù)文件
include_package_data 自動(dòng)包含包內(nèi)所有受版本控制(cvs/svn/git)的數(shù)據(jù)文件
exclude_package_data 當(dāng) include_package_data 為 True 時(shí)該選項(xiàng)用于排除部分文件
data_files 打包時(shí)需要打包的數(shù)據(jù)文件,如圖片,配置文件等
ext_modules 指定擴(kuò)展模塊
scripts 指定可執(zhí)行腳本,安裝時(shí)腳本會(huì)被安裝到系統(tǒng) PATH 路徑下
package_dir 指定哪些目錄下的文件被映射到哪個(gè)源碼包
requires 指定依賴的其他包
provides 指定可以為哪些模塊提供依賴
install_requires 安裝時(shí)需要安裝的依賴包
entry_points 動(dòng)態(tài)發(fā)現(xiàn)服務(wù)和插件,下面詳細(xì)講
setup_requires 指定運(yùn)行 setup.py 文件本身所依賴的包
dependency_links 指定依賴包的下載地址
extras_require 當(dāng)前包的高級(jí)/額外特性需要依賴的分發(fā)包
zip_safe 不壓縮包,而是以目錄的形式安裝

2)編寫核心代碼
在工程目錄下新建一個(gè)utilsss的package,默認(rèn)自帶一個(gè)init.py文件,即調(diào)用該包就自動(dòng)執(zhí)行該文件。然后在包里面新建一個(gè)自己想要擁有的函數(shù)。
接下來我們就可以編寫自己的代碼了,要注意源代碼文件夾(倉庫里的my_package文件夾)的名字與setup.py里配置的包名(Name)要一致。
另外在重新上傳之前我們要修改version.py里的版本號(hào),以免覆蓋了以前的上傳(相信會(huì)有人是需要之前版本的庫的)。
本目錄包含文件:
core.py
init.py
version.py(非必須)

3.打包項(xiàng)目
在代碼編寫完成,自已測(cè)試后沒有問題了,就可以打包了。
命令窗口輸入:
$ python setup.py sdist # 生成類似 utilsss-0.1.3.tar.gz,支持 pip

經(jīng)過以上步驟已經(jīng)可以生成一個(gè)pip可安裝的工程包,安裝非常簡(jiǎn)單。
直接在命令窗口輸入:

pip install .\dist\utilsss-0.1.3.tar.gz

4.上傳到PyPi服務(wù)器

1)創(chuàng)建 PyPI賬號(hào)
非常簡(jiǎn)單,直接通過官網(wǎng)注冊(cè) https://pypi.python.org/pypi?..., 但是需要驗(yàn)證郵件并確認(rèn)激活。
之前我在pypi注冊(cè)時(shí)弄了雙因素驗(yàn)證(解釋),有需要的同學(xué),可以弄個(gè),加強(qiáng)賬號(hào)安全。
2)創(chuàng)建用戶驗(yàn)證文件 ~/.pypirc
在自己的用戶目錄下新建一個(gè)空白文件命名為.pypirc,內(nèi)容如下:

[distutils]
index-servers=pypi

[pypi]
repository = https://upload.pypi.org/legacy/
username = <username>
password = <password>

3)用戶名和密碼就是上一步驟所創(chuàng)建的,直接明文輸入。如果你覺得明文密碼不安全也可以留空,在后面的上傳過程中會(huì)提示你手動(dòng)輸入。

注冊(cè)你的包
你需要到PyPI注冊(cè)并驗(yàn)證你的包,之后才能開始真正上傳,注冊(cè)的方式有以下幾種。

使用命令python setup.py register,最簡(jiǎn)單但官網(wǎng)不推薦,因?yàn)槭褂玫氖荋TTP未加密,有可能會(huì)被***人嗅探到你的密碼。
通過PyPI網(wǎng)站提交表單完成注冊(cè)驗(yàn)證。
安裝 pip install twine 然后在通過命令 twine register dist/mypkg.whl 完成注冊(cè)。
4)上傳并完成發(fā)布
正常情況下,直接使用第一條命令即可,也可以使用tuine這個(gè)第三方較為安全的提交方式。

使用命令:python setup.py sdist upload,還是和上面一樣,簡(jiǎn)單但有安全隱患,目前已淘汰。
使用 twine: twine upload dist/*

可能遇到的錯(cuò)誤

Upload failed (403): Invalid or non-existent authentication information.
錯(cuò)誤的用戶驗(yàn)證信息,你需要?jiǎng)?chuàng)建一個(gè)用戶驗(yàn)證文件 ~/.pypirc。請(qǐng)參閱上文。

Upload failed (403): You are not allowed to edit 'xxx' package information
你需要先注冊(cè)你的包才可以開始上傳,運(yùn)行注冊(cè)命令:python setup.py register

Server response (401): Incomplete registration; check your email
你的PyPI賬戶還沒完成郵箱驗(yàn)證,你需要去注冊(cè)郵箱找到一封驗(yàn)證郵件完成驗(yàn)證后再重試失敗的步驟。

Server response (400): Invalid classifier "Topic :: Software Development :: Utilities"
你的setup.py文件中的classifier信息有誤,請(qǐng)按官網(wǎng)的正確分類書寫classifier.

error: No dist file created in earlier command
你還沒打包就開始了上傳命令,建議打包和上傳的操作放在一起做,比如:

python setup sdist upload
error: Upload failed (499): Client Disconnected
這應(yīng)該是網(wǎng)絡(luò)問題,多重試幾次。

Upload failed (400): File already exists
文件已經(jīng)存在了,你每一次上次都應(yīng)該更新版本號(hào)。

官網(wǎng)參考文檔
https://packaging.python.org/...

(后續(xù)會(huì)繼續(xù)補(bǔ)充完善使更加容易明白操作)

文章名稱:自作pip包流程詳解
瀏覽地址:http://jinyejixie.com/article28/ipjgjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、域名注冊(cè)企業(yè)網(wǎng)站制作、自適應(yīng)網(wǎng)站、網(wǎng)站制作、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
孝义市| 宁安市| 汤阴县| 观塘区| 宣威市| 潞城市| 鱼台县| 治多县| 申扎县| 东乌| 酉阳| 昌平区| 轮台县| 商洛市| 新巴尔虎左旗| 湖北省| 修文县| 孝昌县| 揭阳市| 天门市| 太保市| 清远市| 英山县| 贵阳市| 顺平县| 岳阳市| 日土县| 密山市| 建始县| 元谋县| 新龙县| 枣强县| 奎屯市| 基隆市| 舟曲县| 榕江县| 武邑县| 阆中市| 耒阳市| 大悟县| 桦甸市|