python安裝pip包(如何將Python包發布到)
2023-10-22 23:59:52 1
在本文中,讓我們了解如何開發 Python 包,然後將其發布到 PyPi 進行分發。這是一篇包含一些高級概念的技術文章,但我將花一些時間詳細介紹每個概念,並在我們繼續進行時提供執行所有步驟的演練。python 程式設計師經常在 python 應用程式中使用各種包,如 Pandas、NumPy 等,以使其更健壯並利用 SDK 的豐富功能。為了在您的代碼中使用任何此類包,您首先需要在您的機器上安裝這些包,然後將其導入您的代碼中。
當我們談論PIP(python 中著名的包管理工具)時,這個想法可能看起來很熟悉。為了在 python 中安裝任何包,我們使用 pip install 並且包被安裝在我們的機器上。但是,這些包維護在稱為PyPi或 Python 包索引的中央存儲庫中。PyPi 是 Python 包的官方第三方軟體存儲庫。每當您運行 pip install 命令時,pip 工具都會在此存儲庫中搜索包,然後將其下載並安裝到您的機器或虛擬環境中。
什麼是 Python 包在 python 中開發包時,第一件事是你應該知道 python 中的包和模塊是什麼。您在.py文件中編寫的任何代碼在 python 中都稱為模塊。模塊可以導入到另一個模塊中。可以將針對任何特定操作的多個模塊的集合組合在一起以形成一個包。包還可以包含組織成目錄和子目錄的代碼。您可以從官方文檔中閱讀更多關於 python 模塊和包的信息。
發布 python 包的步驟非常簡單,如下所示。
1.編寫你的python模塊並將其保存在一個目錄下。
2. 創建包含必要信息的 setup.py 文件。
3. 選擇一個許可證並為您的項目提供一個 README 文件。
4. 在本地機器上生成分發檔案。
5. 嘗試在本地機器上安裝包。
6. 將包發布到TestPyPi存儲庫以檢查是否一切正常。
7. 最後,將包發布到PyPi存儲庫。
現在讓我們一個一個地執行上述每個步驟,將我們的包發布到 PyPi 存儲庫。
創建python包和目錄結構等文件。您應該首先確定包的名稱,然後使用包的名稱創建目錄名稱。假設我們要發布一個名為「 quicksample 」的包,所以目錄應該是同名的。在其下創建另一個名為「 src 」的子目錄,並在src子目錄下放置一個 quicksample.py 文件。
此外,您還應該在項目的根目錄下包含一個 setup.py 文件、一個 readme.md 和一個 LICENSE 文件。您可以從GitHub 連結了解有關許可的更多信息。此時,您的項目結構應如下所示。
為了簡單起見,我們將在 quicksample.py 文件中編寫一個簡單的方法,以便在導入後調用。
def quicktext: print('Hello, welcome to QuickSample package.')
現在,讓我們開始編輯 setup.py 文件。您可以使用以下代碼段來更新您的設置文件。
import setuptoolswith open("README.md", "r") as fh: long_description = fh.readsetuptools.setup( , # This is the name of the package , # The initial release version , # Full name of the author , long_description=long_description, # Long description read from the the readme file , packages=setuptools.find_packages, # List of all python modules to be installed classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], # Information to filter the project on PyPi website python_requires='>=3.6', # Minimum version requirement of the package py_modules=["quicksample"], # Name of the python package package_dir={'':'quicksample/src'}, # Directory of the source code of the package install_requires=[] # Install other dependencies if any)
設置文件準備好後,最後一步是添加 readme.md 文件。它只是一個 markdown 文件,您可以在部署包時使用它來記錄包,或者也可以在 GitHub 上為您的項目記錄包。
A sample python package deployment utility for SQLShack Demo.
在本地機器上生成分發包現在 python 包的代碼幾乎完成了,您可以開始構建分發檔案。存檔是壓縮文件,可幫助您的包跨多個平臺部署,並使其獨立於平臺。為了生成分發檔案,請從您的終端運行以下命令。
python -m pip install --user --upgrade setuptools wheel
這將升級您機器上的 setuptools 庫以使用最新版本。在此之後,您需要從包的根目錄運行以下命令來生成分發文件。
python setup.py sdist bdist_wheel
運行上述命令後,您可以看到分發包將交付到目錄下 - build和dist,新創建的目錄如下所示。除此之外,您還可以看到項目原始碼中的egg文件信息也已更新。
現在我們已經準備好分發文件,我們可以繼續嘗試安裝和導入包以測試它是否工作正常。為了在本地機器上安裝包,從根目錄運行以下命令。
pip install -e .
如上圖所示,第一步我們使用命令在本地安裝包,安裝後,我們啟動 python shell 並導入它。然後我們調用 package 方法並將消息列印到終端。
將包發布到TestPyPi一旦包在本地安裝並且工作正常,現在就可以將其發送到 TestPyPi 存儲庫了。這是所有 python 包的測試存儲庫,用於測試並查看所有代碼是否正常工作並且包代碼中沒有問題。這使它與官方 PyPi 存儲庫隔離,並確保只有經過全面測試的包才會部署到生產環境中。
打開https://test.pypi.org/並註冊用戶。註冊後,打開終端並運行以下命令。這將在你的機器上安裝一個名為「 twine 」的包,它將幫助將 python 包發送到存儲庫。
python -m pip install — user — upgrade twine
您可以在此處閱讀有關打包 python 應用程式和twine的官方文檔。安裝 twine 包後,首先運行以下命令將代碼發送到 TestPyPi。當您運行該命令時,系統會要求您提供與您在上一步中註冊帳戶時使用的相同的憑據。
python -m twine upload — repository testpypi dist/*
如上圖所示,python 包現已發送到 TestPyPi 存儲庫,您可以從上面終端中的 URL 連結查看它。
為了從測試存儲庫安裝包,首先我們將卸載已經存在的包,然後運行以下命令來安裝它。
pip uninstall quicksample
pip install -i https://test.pypi.org/quicksample/ quicksample==0.0.1
這將從 TestPyPi 存儲庫將包安裝到本地系統上。
將包發布到PyPi存儲庫現在我們的包一切正常,是時候將它發布到官方 PyPi 存儲庫了。按照相同的步驟註冊一個帳戶,然後運行以下命令將包發送到官方存儲庫。
python -m twine upload dist/*
您現在可以使用標準命令安裝該軟體包。
結論恭喜,你已經成功發布了你的 python 包。
在這篇進階文章中,我們了解了 Python 包是什麼,以及如何在 Python 中開發一個簡單的包。我們還了解了名為 PyPi 的 Python 第三方官方存儲庫,開發人員可以在其中發布自己的包並重用代碼。您可以將您的 python 代碼構建到sdists或wheel文件中,然後將其發布在 PyPi 上。
,