zoukankan      html  css  js  c++  java
  • [转载]Python 包构建教程

    [转载]Python 包构建教程

    来源:https://www.cnblogs.com/cposture/p/9029023.html#_lab2_4_4

    文章写的特别棒,我这里就不粘贴了,只列举一些重点:

    基础概念

    • module 模块:module 是 python 中代码重用的基本单元,一个 module 可以通过 import 语句导入到另一个 module;module 分为:pure python module(纯 python 模块)、extension module(扩展模块)和 package(包)
    • pure python module:纯 python 模块是用纯 python 语言编写的模块,单一的 .py 文件作为一个模块使用,也就是一个 .py 可以称为模块了
    • extension module:扩展模块是用底层的 C/C++、Objective-C 或 Java 编写的模块,通常包含了一个动态链接库,比如 so、dll 或 Java,目前 distutils 只支持 C/C++ 和 Objective-C,不支持 Java 编写扩展模块;但是 python 提供了一个 JCC 这样一个用于生成访问 Java 类接口的 C++ 代码的胶水模块,应该也是可以使用 Java 编写模块的。
    • package:包是一个带有 __init__.py 文件的文件夹,用于包含其他模块
    • root package:root package 是包的最顶层,它不是实质性的包,因为它不包含 __init__.py 文件。大量的标准库位于 root package,因为它们不属于一个任何更大的模块集合了。实际上,每一个 sys.path 列举出来的文件夹都是 root package,你可以在这些文件夹中找到大量的模块。
    • distribution:模块分发,一个归档在一起的 python 模块集合,它作为一个可下载安装的资源,方便用户使用,作为开发者便需要努力创建一个易于使用的 distribution
    • distribution root:源代码树的最顶层,也就是 setup.py 所在的位置。

    如果 python 模块分布在不同的文件夹,最好是在该文件夹下创建一个 __init__.py 文件,以表示它是一个包

    使用拓展以实现调用cpp文件时,我们需要编写 setup 脚本编译我们的 cpp 文件为 so 动态链接库,并进行相应的封装

  • 相关阅读:
    zabbix(x)
    kvm 学习(三)存储池
    kvm 学习(二)镜像
    hadoop3.1.1:找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
    (转)mysql更改数据目录
    (转)SLOW READPROCESSOR;ERROR SLOW BLOCKRECEIVER错误日志分析
    Linux下 为什么有时候使用sudo也提示没有权限
    (转)hadoop 常规错误问题(一)
    (转)SmartPing:一个服务器Ping值监测工具
    (转)hadoop 配置文件解释
  • 原文地址:https://www.cnblogs.com/jiading/p/12187901.html
Copyright © 2011-2022 走看看