Python 高级编程笔记之编写一个包

目录:

  1. 如何创建一个命名空间包
  2. setup.py的主要任务,以及如何使用它建立和发行包
  3. 基于模板生成包框架的方法
  4. 剪贴本的工作原理以及创建包框架的方法
  5. 如何发行包及提供每夜构建版本

主要内容:

书籍《Python 高级编程》中第五章节介绍的就是目录中的5点,感觉讲的过于复杂化,从网上找了个教程,按教程走了一遍,没有把自己写的包成功放入 https://pypi.python.org/pypi 但也没想把它放上去,先把方法记录下来,以后真要放上去的时候再来嗨皮

主要代码:setup.py

# -*- coding:utf-8 -*-
import codecs
import os
try:
    from setuptools import setup
except:
    from distutils.core import setup


def read(fname):
    return codecs.open(os.path.join(os.path.dirname(__file__), fname)).read()

NAME = "MaoNing"

PACKAGE = ["MaoNing"]

DESCRIPTION = "this is a test package for test MaoNing interface"

LONG_DESCRIPTION = read("README")

KEYWORDS = "test python package"

AUTHOR = "Yangting Xu"

AUTHOR_EMAIL = "407708323@qq.com"

URL = "http://www.xuyangting.com/"

VERSION = "1.0.1"

LICENSE = "MIT"

setup(
    name=NAME,
    version=VERSION,
    description=DESCRIPTION,
    long_description=LONG_DESCRIPTION,
    classifiers=[
        'License :: OSI Approved :: MIT License',
        'Programming Language :: Python',
        'Intended Audience :: Developers',
        'Operating System :: OS Independent',
    ],
    keywords=KEYWORDS,
    author=AUTHOR,
    author_email=AUTHOR_EMAIL,
    url=URL,
    license=LICENSE,
    package=PACKAGE,
    include_package_data=True,
    zip_safe=True
)

运行截图:

这里写图片描述

参考文献: 将自己写的Python代码打包放到PyPI上

本人利用Bootstrap + EasyUI + Django开发网站:http://www.xuyangting.com/ 欢迎来访

阳台测试: 239547991(群号)

本人博客:http://xuyangting.sinaapp.com/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一门高级编程语言,它是一种动态类型、面向对象的语言,支持多种编程范式。Python在科学计算、数据分析、人工智能等领域有广泛的应用,越来越受到业界的关注。Python还有一个优点就是其灵活的扩展性,可以通过编写扩展模块来增强Python的功能。 编写一个Python扩展模块,需要先了解一下Python的C API,这是Python提供的一套C语言的API接口,可以用于编写Python扩展模块或者嵌入Python到其他应用程序中。扩展模块也可以用其他语言如C++、FORTRAN等编写,只要是遵循Python的C API规范即可。 编写Python扩展模块,可以使用Python自带的distutils模块来进行构建和安装。该模块可以用setup.py脚本来配置扩展模块的编译参数、依赖库等,并可以生成可执行文件或者扩展模块所需的动态链接库等文件。 下面是一个简单的Python扩展模块的例子,该模块可以计算两个数字的乘积: // test_module.c #include <Python.h> static PyObject* multiply(PyObject* self, PyObject* args) { int x, y; if (!PyArg_ParseTuple(args, "ii", &x, &y)) { return NULL; } return Py_BuildValue("i", x * y); } static PyMethodDef TestModuleMethods[] = { {"multiply", multiply, METH_VARARGS, "Returns the product of two integers."}, {NULL, NULL, 0, NULL} }; static struct PyModuleDef test_module = { PyModuleDef_HEAD_INIT, "test_module", "A test module that multiplies two integers", -1, TestModuleMethods }; PyMODINIT_FUNC PyInit_test_module(void) { return PyModule_Create(&test_module); } 在该模块中,我们定义了一个multiply函数,用于计算两个整数的乘积。该函数采用Python提供的PyArg_ParseTuple函数解析函数的输入参数,然后返回乘积。我们还定义了一个TestModuleMethods数组,它是一个PyMethodDef结构体的数组,里面记录了我们定义的函数的名称、函数指针、函数的参数类型等信息。最后我们使用PyModule_Create函数生成一个Python模块对象并返回。 我们需要将上面的代码保存到test_module.c文件中,并使用如下命令来构建并安装该模块: $ python setup.py build $ python setup.py install 在安装完成后,我们可以在Python解释器中使用该模块: >>> import test_module >>> test_module.multiply(10, 20) 200 编写Python扩展模块是一项有趣的工作,它可以让我们深入了解Python的内部机制,并且可以为我们解决一些实际问题带来便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值