91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

自作pip包流程詳解

發布時間:2020-05-24 17:20:55 來源:網絡 閱讀:325 作者:qq5c9f019c691d6 欄目:編程語言

自作pip包流程詳解

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

python -m pip install --upgrade pip setuptools wheel

詳情見官網鏈接

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

所建目錄及文件詳見下圖:
自作pip包流程詳解
setup.py中參數配置
樣例代碼:
from future import 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,

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

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項目引用到的第三方庫,如果你的項目有用到第三方庫,要在這里添上第三方庫的包名,如果用的第三方版本不是最新版本,還要有版本號。

更多參數詳解如下:

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

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

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

經過以上步驟已經可以生成一個pip可安裝的工程包,安裝非常簡單。
直接在命令窗口輸入:

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

4.上傳到PyPi服務器

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

[distutils]
index-servers=pypi

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

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

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

使用命令python setup.py register,最簡單但官網不推薦,因為使用的是HTTP未加密,有可能會被***人嗅探到你的密碼。
通過PyPI網站提交表單完成注冊驗證。
安裝 pip install twine 然后在通過命令 twine register dist/mypkg.whl 完成注冊。
4)上傳并完成發布
正常情況下,直接使用第一條命令即可,也可以使用tuine這個第三方較為安全的提交方式。

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

可能遇到的錯誤

Upload failed (403): Invalid or non-existent authentication information.
錯誤的用戶驗證信息,你需要創建一個用戶驗證文件 ~/.pypirc。請參閱上文。

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

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

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

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

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

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

官網參考文檔
https://packaging.python.org/...

(后續會繼續補充完善使更加容易明白操作)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

仁布县| 金华市| 离岛区| 泰州市| 宾川县| 余江县| 开鲁县| 关岭| 团风县| 桦南县| 南江县| 常山县| 阿克苏市| 临邑县| 报价| 于都县| 临湘市| 太保市| 山西省| 浙江省| 亳州市| 平江县| 浠水县| 黎平县| 贺兰县| 叶城县| 奎屯市| 怀仁县| 福清市| 金坛市| 民丰县| 华坪县| 安义县| 呼伦贝尔市| 延吉市| 玉环县| 永昌县| 金沙县| 农安县| 东兰县| 苗栗市|