上传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()

 

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