上傳py模塊到pypi

1. 在pypi官網(https://pypi.org)註冊並完成賬號認證。

2. 在本地創建Python項目。

項目組成包括:

tests文件夾,裏面是空的就可以

kcodepen.py 準備上傳的模塊文件。我在kcodepen中定義了四個函數,分別用來繪製方形、圓形、三角形和五角星:

 

LICENSE 證書文件。文件的內容在pypi的官方指導文檔有說明,直接複製粘貼即可:

Copyright (c) 2018 The Python Packaging Authority

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

 READMD.md 對要上傳模塊的說明,這些說明到時候會顯示在pypi官網上供下載時對模塊內容進行了解。文件的內容在pypi的官方指導文檔有說明,直接複製粘貼即可:

# Example Package

This is a simple example package. You can use
[Github-flavored Markdown](https://guides.github.com/features/mastering-markdown/)
to write your content.

setup.py 對要上傳的模塊進行編譯處理。setup.py的總體內容在pypi的官方指導文檔有說明,在此基礎上我做了一些更改:

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()  # 讀取README.MD中的說明

setuptools.setup(name="pykcode", # 這個是顯示在PYPI中的名稱,使用pip安裝時也是這個名稱
                 version="0.0.5",# 版本號,做pip install --upgrade的時候有用
                 author="piglite", # 作者
                 author_email="[email protected]", 
                 description="test package",
                 long_description=long_description, #傳入README.MD中的說明內容
                 long_description_content_type="text/markdown",
                 url="https://github.com/piglite",
                 packages=setuptools.find_packages(),
                 classifiers=[
                     "Programming Language :: Python :: 3",
                     "License :: OSI Approved :: MIT License",
                     "Operating System :: OS Independent",
                 ],
                 python_requires='>=3.6',
                 py_modules=['kcodepen'] #要上傳的模塊,也就是項目中的kcodepen.py
) 

3. 利用setup.py構建和編譯項目:

構建項目:

python setup.py build

注意,終端輸入命令時,目錄保持在setup.py所在文件夾

編譯項目:

python setup.py sdist

如果除了提供壓縮文件還想提供.whl文件的話,可以用如下指令:

python setup.py sdist bdist_wheel

此時,被編譯好的文件在項目文件夾的dist文件夾下:

4. 在本地創建PYPI的賬號信息文件。信息文件保存在登錄用戶文件夾下(例如:users/Adiministrator),文件名稱是 .pypirc

 

編輯 .pypirc

[distutils]
index-servers = pypi

[pypi]
username: pypi註冊時的用戶名
password: pypi註冊時的密碼

5. 上傳到PYPI

利用pip安裝或更新上傳工具twine

pip install --upgrade twine

利用twine上傳項目文件夾中dist下的內容:

twine upload dist/*

注意,在終端輸入twine upload dist/* 指令時,也應該在setup.py所在文件夾中。

6. 上傳成功後,在PYPI.org搜索就可以看到自己剛剛上傳的內容。上傳時我使用的名稱(name)是pykcode

7. 可以使用pip install進行安裝或更新:

pip install --upgrade pykcode

8. 在項目中使用,導入時要使用寫在setup.py中py_modules裏面的內容: 

import kcodepen
import turtle

t = turtle.Turtle()
kcodepen.star(t, 100)

turtle.done()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章