欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python创建模块并发布到pypi

程序员文章站 2022-05-07 23:08:40
...

1.注释代码

使用连续的三个双引号开头和结尾,中间的部分就是注释内容

2.

python shell中键入:import sys; sys.path(在一行)显示搜索模块的路径

3.将函数打包成模块,在本地安装

3.1在文件test1.py中定义一个函数
"""定义了一个test1的module,提供了print_hello()函数"""
def print_hello():
    """print_hello函数主要功能是输出一个'Hello World!'字符串"""
    print("Hello World!")
3.2创建一个文件夹名字和test1.py名相同,为test1。把test1.py放到test1文件夹中

3.3在test1文件夹中创建一个文件setup.py,文件内容是

```
from distutils.core import setup
setup(
    name            = '自定义',
    version         = '自定义',
    py_modules      = ['test1'],
    author          = '自定义',
    author_email    = '自己写',
    url             = '随便写的',
    description     = '描述',
)

```


3.4打开命令行,进入test1目录中,执行:python setup.py sdist。转化为模块

3.5打开命令行,进入test1目录中,执行:python setup.py install。将模块安装到本地(一般放到python安装目录下的Lib文件夹中)

4.导入test1模块:import test1

    在使用print_hello函数时必须加上命名空间test1(在安装模块时,自动创建一个和模块名相同的命名空间),如:test1.print_hello();

    如果要使用没有命名空间的方式,引入时要这么写:from test1 import print_hello,然后使用时这么写:print_hello()。这种方式会覆盖原先已经存在的print_hello()函数

5.在http://pypi.python.org注册账号

具体我就不写了,相信大家自己能解决

6.在user/tank文件夹下创建.pypirc文件内容是

这块可以参考官方给的文档:https://packaging.python.org/guides/migrating-to-pypi-org/#uploading
[distutils]
index-servers =
    pypi

[pypi]
repository: https://upload.pypi.org/legacy/
username:账号
password:密码
    安装twine:pip install twine

    在test1文件夹中,执行 :twine upload dist/*

    按说到这里就可以成功了,但我实验的时候总是报错--- HTTPError: 403 Client Error: You are not allowed to upload to 'test1'. for url: https://upload.pypi.org/legacy/,找了好久没有解决方法!!!


    经多次实验得出结论,因为test1这个module名已经被占用了,所以一直不能上传。之后打包的时候把module名改成了testtank001,果然上传成功了!!!