亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何將自己寫的模塊上傳到pypi

 更新時(shí)間:2021年03月11日 15:03:38   作者:古明地盆  
這篇文章主要介紹了如何將自己寫的模塊上傳到pypi,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

楔子

我們在安裝第三方包的時(shí)候,直接一個(gè)pip install xxx命令就搞定了,然后pip會(huì)去pypi上尋找我們要安裝的包,然后下載下來。

而pypi(Python Package Index )你可以看成是官方維護(hù)的一個(gè)大倉庫,專門用來存儲(chǔ)世界各地的程序員編寫的第三方模塊。我們使用pip進(jìn)行安裝的時(shí)候就會(huì)去這個(gè)倉庫里面找,找到了進(jìn)行下載,找不到就提示不存在。

當(dāng)然我們在安裝的時(shí)候還可以指定清華源、豆瓣源,因?yàn)閜ypi在國外,下載有時(shí)候比較慢,而一旦指定了國內(nèi)的源,那么就不會(huì)去pypi上下載了,所以你可以看成國內(nèi)也有倉庫,專門負(fù)責(zé)搬運(yùn)pypi里面的內(nèi)容。

上傳模塊至pypi

總共分為三步:編寫模塊、編譯模塊、上傳模塊。

編寫模塊

我們看一下要上傳到pypi的模塊長什么樣子。

  • hanser-module-upload:項(xiàng)目的根目錄
  • hanser:模塊名,我們后面可以使用from hanser import xxx,或者import hanser
  • hanser下面的兩個(gè)py文件:相應(yīng)的代碼
  • LICENSE:開源的 LICENSE,如:Apache License 2.0,MIT License 等等
  • README.md:關(guān)于項(xiàng)目的描述,描述如何安裝、使用等情況
  • setup.py:setuptools 的構(gòu)建腳本

然后我們看看代碼長什么樣子。

# calc.py
def add(x: int, y: int) -> int:
 return x + y
 
 
def sub(x: int, y: int) -> int:
 return x - y
 
# __init__.py
from .calc import add, sub

然后最重要的就是編寫setup.py。

# setup.py 是一個(gè) setuptools 的構(gòu)建腳本,其中包含了項(xiàng)目和代碼文件的信息
# 如果沒有需要先安裝,pip install setuptools
import setuptools
 
setuptools.setup(
 # 項(xiàng)目的名稱
 name="anser-module-upload",
 #項(xiàng)目的版本
 version="0.0.1",
 # 項(xiàng)目的作者
 author="布諾妮亞",
 # 作者的郵箱
 author_email="hanser@baka.com",
 # 項(xiàng)目描述
 description="簡單的加減運(yùn)算上傳測試",
 # 項(xiàng)目的長描述
 long_description="簡單的加減運(yùn)算上傳測試",
 # 以哪種文本格式顯示長描述
 long_description_content_type="text/markdown", # 所需要的依賴 
 install_requires=[], # 比如["flask>=0.10"]
 # 項(xiàng)目主頁
 url="https://www.baidu.com",
 # 項(xiàng)目中包含的子包,find_packages() 是自動(dòng)發(fā)現(xiàn)根目錄中的所有的子包。
 packages=setuptools.find_packages(),
 # 其他信息,這里寫了使用 Python3,MIT License許可證,不依賴操作系統(tǒng)。
 classifiers=[
  "Programming Language :: Python :: 3",
  "License :: OSI Approved :: MIT License",
  "Operating System :: OS Independent",
 ],
)

編譯

在上傳代碼之前,我們需要將代碼編譯。除了setuptools之外,我們還需要一個(gè)模塊wheel,如果沒有則需要安裝。

pip install --user --upgrade setuptools wheel

然后對(duì)我們的setup.py進(jìn)行編譯。

python setup.py sdist bdist_wheel

編譯成功之后會(huì)在項(xiàng)目中生成多個(gè)目錄,其中有一個(gè)dist目錄是我們需要上傳的。

上傳

然后就是上傳了,我們需要前往(https://pypi.org/account/register/)注冊一個(gè)賬號(hào),然后再安裝一個(gè)模塊:twine,因?yàn)樯蟼餍枰褂玫剿?/p>

pip install --user --upgrade twine

安裝完成之后,就可以使用如下命令上傳 dist 文件夾里面的文件。

python -m twine upload --repository pypi dist/*

我們看到上傳成功,下面去頁面看一下。

注意:這里為了區(qū)分,我們把根目錄名和模塊名取得不一樣,我們需要pip install hanser-module-upload,然后在site-packages下面會(huì)有一個(gè)hanser目錄,也就是我們所使用的模塊。但是一般情況下,這兩者都是一樣的。比如:我們安裝pandas,那么得到的模塊也叫做pandas。

下面就來試一試吧:

成功安裝,當(dāng)然也是可以使用的。

以后如果我們自己寫了一個(gè)比較不錯(cuò)的模塊的時(shí)候,就可以發(fā)布到pypi上面。

以上就是如何將自己寫的模塊上傳到pypi的詳細(xì)內(nèi)容,更多關(guān)于模塊上傳到pypi的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python入門之基礎(chǔ)語法學(xué)習(xí)筆記

    python入門之基礎(chǔ)語法學(xué)習(xí)筆記

    學(xué)習(xí)python過程中需要了解的一些基礎(chǔ)語法特整理一下方便更開始接觸python的朋友
    2020-02-02
  • 六個(gè)Python3中使用最廣泛的內(nèi)置函數(shù)總結(jié)

    六個(gè)Python3中使用最廣泛的內(nèi)置函數(shù)總結(jié)

    這篇文章主要為大家詳細(xì)介紹了六個(gè)Python3中使用最廣泛的內(nèi)置函數(shù):Lamdba?函數(shù)、Map?函數(shù)、Filter?函數(shù)、Reduce?函數(shù)、Enumerate?函數(shù)和Zip?函數(shù),需要的可以參考一下
    2022-08-08
  • tensor和numpy的互相轉(zhuǎn)換的實(shí)現(xiàn)示例

    tensor和numpy的互相轉(zhuǎn)換的實(shí)現(xiàn)示例

    這篇文章主要介紹了tensor和numpy的互相轉(zhuǎn)換的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Django 狀態(tài)保持搭配與存儲(chǔ)的實(shí)現(xiàn)

    Django 狀態(tài)保持搭配與存儲(chǔ)的實(shí)現(xiàn)

    本文主要介紹了Django 狀態(tài)保持搭配與存儲(chǔ)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • python多線程掃描端口示例

    python多線程掃描端口示例

    這篇文章主要介紹了python多線程掃描端口示例,大家參考使用吧
    2014-01-01
  • Matplotlib子圖的創(chuàng)建的實(shí)現(xiàn)

    Matplotlib子圖的創(chuàng)建的實(shí)現(xiàn)

    本文主要介紹了Matplotlib子圖的創(chuàng)建的實(shí)現(xiàn),包括fig.add_axes()創(chuàng)建子圖和plt.axes創(chuàng)建子圖這兩種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • python批量修改xml文件中的信息

    python批量修改xml文件中的信息

    大家好,本篇文章主要講的是python批量修改xml文件中的信息,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下的相關(guān)資料
    2022-01-01
  • Python CSV 文件解析和生成方法示例

    Python CSV 文件解析和生成方法示例

    這篇文章主要為大家介紹了Python CSV 文件的解析和生成方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Pycharm學(xué)習(xí)教程(3) 代碼運(yùn)行調(diào)試

    Pycharm學(xué)習(xí)教程(3) 代碼運(yùn)行調(diào)試

    這篇文章主要為大家詳細(xì)介紹了最全的Pycharm學(xué)習(xí)教程第三篇代碼運(yùn)行調(diào)試,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Python使用enumerate獲取迭代元素下標(biāo)

    Python使用enumerate獲取迭代元素下標(biāo)

    這篇文章主要介紹了python使用enumerate獲取迭代元素下標(biāo),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論