***对所学内容的简单汇总

在安装python依赖库时,我们使用pip install 或者python setup.py install。

pip 会自己搜索适合的版本,python setup.py 需要下载源码本地安装。但是python setup.py 适合一键打包安装。

setup函数包含的参数解释

--name 包名称------------生成的egg名称

--version (-V) 包版本----生成egg包的版本号

--author 程序的作者------包的制作者名字

--author_email 程序的作者的邮箱地址

--maintainer 维护者

--maintainer_email 维护者的邮箱地址

--url 程序的官网地址

--license 程序的授权信息

--description 程序的简单描述-------程序的概要介绍

--long_description 程序的详细描述---程序的详细描述

--platforms 程序适用的软件平台列表

--classifiers 程序的所属分类列表

--keywords 程序的关键字列表

--packages 需要处理的包目录(包含__init__.py的文件夹)-------和setup.py同一目录下搜索各个含有 init.py的包

--py_modules 需要打包的python文件列表

--download_url 程序的下载地址

--cmdclass

--data_files 打包时需要打包的数据文件,如图片,配置文件等

--scripts 安装时需要执行的脚步列表

--package_dir 告诉setuptools哪些目录下的文件被映射到哪个源码包。一个例子:package_dir = {'': 'lib'},表示“root package”中的模块都在lib 目录中。

--requires 定义依赖哪些模块

--provides定义可以为哪些模块提供依赖

--find_packages() 对于简单工程来说,手动增加packages参数很容易,刚刚我们用到了这个函数,它默认在和setup.py同一目录下搜索各个含有 init.py的包。

其实我们可以将包统一放在一个src目录中,另外,这个包内可能还有aaa.txt文件和data数据文件夹。另外,也可以排除一些特定的包

find_packages(exclude=[".tests", ".tests.", "tests.", "tests"])

--install_requires = ["requests"] 需要安装的依赖包

--entry_points 动态发现服务和插件

样例1如下:

from setuptools import setup, find_packages

setup(

name="prml",

version="0.0.1",

description="Collection of PRML algorithms",

author="ctgk",

python_requires=">=3.6",

install_requires=["numpy", "scipy"],#需要安装的依赖

packages=find_packages(exclude=["test", "test.*"]), # 需要打包的package,使用find_packages 来动态获取package,exclude参数的存在,使打包的时候,排除掉这些文件

test_suite="test"

)

样例2如下:

个人对使用packages相关参数的看法,

首先告诉程序去哪个目录中找包,因此有了packages参数,

其次,告诉程序我包的起始路径是怎么样的,因此有了package_dir参数

最后,找到包以后,我应该把哪些文件打到包里面,因此有了package_data参数

setup(

name = "demo",

version = "0.1",

# 包含所有src目录下的包 ---------项目中的所有源码和测试用例文件目录一般都存放在统一的src目录下方便管理,默认也是创建src目录

packages = find_packages('src'),

package_dir = {'':'src'},

package_data = {

# 包含所有.txt文件

'':['.txt'],

# 包含data目录下所有的.dat文件

'test':['data/.dat'],

}

)

python中setup函数_Python包管理工具setuptools之setup函数参数详解相关推荐

  1. Python之pip:pip包管理工具的简介、安装、使用方法之详细攻略

    Python之pip:pip包管理工具的简介.安装.使用方法之详细攻略 目录 pip的简介 pip的安装 1.测试pip是否已安装 T1.代码查询 T2.自行查询

  2. python扩展包安装_Python包管理工具Distribute的安装

    Python的包管理工具常见的有easy_install, setuptools, 还有pip, distribute,那麽这几个工具有什么关系呢,看一下下面这个图就明白了: 可以看到distribu ...

  3. python怎么更新setuptools_Python包管理工具setuptools详解

    0.什么是setuptools setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的.用户在使用setuptools ...

  4. python pip工具命令_Python包管理工具pip

    一.pip概述 1.python包 python包,可以使我们利用网络上现成的代码库资源,解决程序中某一方面的问题,类似于C语言的各种库. PyPi(Python Package Index ,包索引 ...

  5. python卸载_Python包管理工具pip - amanlikethis

    一.pip概述 包 python包,可以使我们利用网络上现成的代码库资源,解决程序中某一方面的问题,类似于C语言的各种库. PyPi(Python Package Index ,包索引)   是 Py ...

  6. python 包管理工具 —— setuptools

    1. 创建一个简单的包 创建 setup_demo文件夹,编写如下的 setup.py 文件: from setuptools import setup, find_packages setup(na ...

  7. python二维图颜色函数_Python绘图之二维图与三维图详解

    各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男" 1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import ...

  8. python 录制web视频_Python django框架 web端视频加密的实例详解

    视频加密流程图: 后端获取保利威的视频播放授权token,提供接口api给前端 参考文档:http://dev.polyv.net/2019/videoproduct/v-api/v-api-play ...

  9. python列表浅复制_Python列表的深复制和浅复制示例详解

    一.深复制与浅复制 列表是Python中自带的一种数据结构,在使用列表时,拷贝操作不可避免,下面简单讨论一下列表的深复制(拷贝)与浅复制 首先看代码: l1 = [5, 4, 3, 2, 1] # 用 ...

最新文章

  1. LeetCode: 105. Construct Binary Tree from Preorder and Inorder Traversal
  2. Java 理论与实践: 非阻塞算法简介--转载
  3. ORACLE逻辑DATAGUARD创建表
  4. Mysql数据库(一)——mysql数据库初体验
  5. 基本概率模型和贝叶斯定理
  6. [css] 举例说明background-repeat的新属性值:round和space的作用是什么?
  7. es6 Class 表达式
  8. Google宣布支持Vulkan作为Android的底层图形API
  9. 像素级复制!荣威R品牌“撞车”小鹏P7剪刀门,还是手动的?
  10. 阿里云 网站https设置 sll申请与nginx跳转配置
  11. 访问控制模型总结(DAC MAC RBAC ABAC)
  12. amp模式_AMP的完整形式是什么?
  13. 痞子衡嵌入式:盘点国内Cortex-M内核MCU厂商高性能产品
  14. HTML目前最新版本,HTML5最新版本介绍
  15. iphone和mac互传文件_怎样快速在iphone与mac之间传文件
  16. python打印国际象棋棋盘_python输出国际象棋棋盘的实例分享
  17. 直播app源代码,android弹框的几种操作
  18. 协作设计: 如何有效提高团队合作的工作效率?
  19. 切线空间以及TBN矩阵
  20. k-means聚类算法与局部最优解

热门文章

  1. 卖货文案不会写?试试这5个方法(三)
  2. 一起学习Redis之在Java中使用
  3. SAI 绘图软件+笔刷+教程
  4. 考IE去CCIE的培训班好还是HCIE好?
  5. EPSON RX8010SJ RTC 调试笔记 之一,I2C 地址及通讯时序
  6. 二叉查找树(1)-二叉树-数据结构和算法(Java)
  7. 王佩丰Excel24讲_第2讲:excel单元格格式设置
  8. 交换机的4种网络结构方式:级联方式、堆叠方式、端口聚合方式、分层方式
  9. 用flask快速打造一个技术导航网站,并自动采集导航!附源码
  10. 遥感影像出现密密麻麻小空洞「神奇」解决办法