溫馨提示×

溫馨提示×

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

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

怎么構(gòu)建一個Python包

發(fā)布時間:2021-10-28 15:22:24 來源:億速云 閱讀:221 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“怎么構(gòu)建一個Python包”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么構(gòu)建一個Python包”吧!

開始

首先,您肯定需要設(shè)置一個或多個內(nèi)容,以便了解如何構(gòu)建python包。因此,需要的東西的如下:

  • IDE (Vs Code)

  • Python 3

構(gòu)建Python包

本文中構(gòu)建的標(biāo)稱為b_dist。b_dist是一個分布包,它有Gaussian, Binomial,  e.t.c等類。但首先,使用下面的映射結(jié)構(gòu)創(chuàng)建包文件夾:

b_dist/         __init__.py        Binomialdistribution.py        Guassiandistribution.py        Generaldistribution.py        licence.txt        setup.cfgREADME.mdsetup.py

首先,您必須為上面在映射中列出的那些創(chuàng)建一個空文件。注意:b_dist是一個文件夾,setup.py帶有自述文件。md不在b_dist文件夾中。

讓我們先談?wù)刡_dist里面的文件:

b_dist/__init__.py

這個文件告訴python這個文件夾包含一個包。另外,包總是由init文件組成,即使它是空的。當(dāng)您在python程序中導(dǎo)入一個包時,剩余的__init__文件就會運(yùn)行。在這種情況下,其他的__init__文件導(dǎo)入高斯、二項和分布模型,以便在使用包時直接導(dǎo)入這些類。

b_dist/Binomialdistribution.py

二項文件是用于計算和可視化二項分布的類。

b_dist/Guassiandistribution.py

高斯文件是用于計算和可視化高斯分布的類。

b_dist/Generaldistribution.py

通用分布文件是用于計算和可視化概率分布的類。

b_dist/licence.txt

許可證檔案實(shí)際上載有你的版權(quán)資料,說明你打算準(zhǔn)許其他使用者自由使用你的套件。

b_dist/setup.cfg

cfg文件是一個保存自述文件數(shù)據(jù)的文件。

README.md

這是包的文檔。它描述了包是如何工作的

setup.py

py文件是pip安裝包所必需的。此外,它還包含關(guān)于包的元數(shù)據(jù)。請注意以下屬性,如名稱和包。這個屬性必須與文件夾名' b_dist  '具有相同的值,以便在上傳我們的包時避免bug。

本地運(yùn)行包

讓我們先通過輸入下面的代碼在本地運(yùn)行包:

# change directory to where the setup file and the package is located ~$ cd python_package ~/python_package:$  # Install the package locally # NOTE:pip install . installs any setup.py file in that directory. ~/python_package:$ pip install .

輸入后應(yīng)該是輸出:

Processing /python_package Building wheels for collected packages: b-dist   Building wheel for b-dist (setup.py) ... done   Created wheel for b-dist: filename=b_dist-0.4-py3-none-any.whl size=5108 sha256=d4c6f74daa1add07f37b01a74294e86ab07d655a6e0944bbb46ed6503ae493ef   Stored in directory: /tmp/pip-ephem-wheel-cache-3pvdd9ue/wheels/1e/f9/a3/568195cccd4e2d1dcb1edaf9c2708f651b90b6af6fbdfd3f36 Successfully built b-dist

最后,我們的包已經(jīng)安裝好了。讓我們通過輸入下面的代碼來測試它是否有效:

# open the python shell In[1]: /python_package$ python Out[1] Python 3.7.3 (default, Mar 27 2019, 22:11:17)  [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. In[2] >>>from b_dist import Guassian In[3] >>> Guassian(10,5)Out[3] mean 10, standard deviation 5

太棒了! !,現(xiàn)在我們的包可以工作了,讓我們繼續(xù)進(jìn)行下一個部分。

上傳Python包

怎么構(gòu)建一個Python包

使用PyPI可以快速上傳新構(gòu)建的包。首先來看什么是PyPi。PyPi代表Python包索引(PyPi),它是Python編程語言的軟件存儲庫。

所以現(xiàn)在要將我們的包上載到PyPI站點(diǎn)的測試版本,另外要確保pip安裝過程是否正常,然后現(xiàn)在要上載到PyPI站點(diǎn)。

首先,用測試創(chuàng)建一個帳戶。對兩個站點(diǎn)使用相同的用戶名和密碼。

在成功創(chuàng)建兩個帳戶之后,讓我們返回IDE并將包上傳到TestPyPi。但首先,要與這些站點(diǎn)通信,您需要pip安裝一個名為twine的庫,使用:

pip install twine

所以,安裝twine后,輸入以下代碼先上傳到TestPyPi:

# Creating the distribution package to be uploaded ~/python_package:$ python setup.py sdist

輸入代碼后,您將看到兩個新文件夾,然后移動到下一行代碼:

# Upload the package created using twinw ~/python_package:$ twine upload --repository-url https://test.pypi.org/legacy/ dist/* Output: Uploading distributions to https://test.pypi.org/legacy/ # enter your username and password used in registraion to the site Output: Enter your username : bideen Output: Enter your password : ########

輸入密碼后,你會看到一條成功的消息:“上傳package_name  100%成功”。要檢查上傳是否成功,請訪問您的TestPyPi帳戶并查看您的新包。

現(xiàn)在使用以下代碼從TestPyPi站點(diǎn)安裝pip:

# first uninstall the previuos package on to aviod conflicts ~/python_package:$ pip uninstall b_dist # install fro the TestPyPi ~/python_package:$ pip install --index-url https://test.pypi.org/simple/ b_dist

成功集成TestPyPi之后,現(xiàn)在讓我們繼續(xù)上載到主PyPi,在那里可以使用包名直接進(jìn)行pip安裝,也可以公開使用。

# first uninstall the previuos package on to aviod conflicts ~/python_package:$ pip uninstall b_dist # install fro the TestPyPi ~/python_package:$ pip install b_dist

到此,相信大家對“怎么構(gòu)建一個Python包”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI