使用setuptools的实用程序类和方法
setupext的Python项目详细描述
setupext
==
此模块包含简化编写python安装脚本(setup.py)的实用方法。
building c extensions:请参见setupext/doc/setup sample.py
-指定c源的位置
-指定共享库名称
-指定特定的c要编译的源文件
bundle additional files with package-using get \dir \tree()
-include and install c sources under python module directory
-include readme,license and o ther files under python module directory
add a list of shell commands or python cal在安装的不同阶段执行的标签:
-build
-build\\u clib
-build\\u ext
-build\\u py
-build\\u scripts
-install\\u data
-install\\u lib
-install\\u headers
python代码(可调用)可以在每个阶段之前或之后运行。
请注意,如果要使用触发器功能,则需要在包中包含此包。
ns和package layout
==
此setup.py采用以下布局。
顶层-->;python package name
:
——许可证——Github ETC的典型许可证,但不是必需的
/>指向Data_dirx下的文件的硬链接,使其保持在顶层
/>——顶层模块2py
数据目录1
数据目录2文件1-例如许可证2-例如readme.rst
红色库(如果有)将被安装
-附加数据(如果有)(data-dirs)将被安装
-设置包
-在additional keyword args to setup()下
-在addl-kwargs中添加py-modules=[]
-在c扩展详细信息下-如果包包含c扩展n:
-设置libpath
-设置c\\u src \-list
-设置ext \-u模块
c扩展名详细信息
====
或者只需设置一个扩展名的简单情况,您只需设置:
:
libname-->;str:shared library filename without'.so'
c戥src戥files-->;c戥dir中str:c源文件名的列表
=============
i使用package\-dir和package\-u数据指定安装附加的
文件,这些文件是:
-顶层下目录中的文件
-不会自动包括或安装,因为:
-py\-modules directive
-packages=find\_ packages()指令
-c扩展所需的源代码
示例:
-ship并在模块目录下安装c源代码
-ship并安装任何其他文件-例如:
-documentation
-license
-不需要清单。in
-不需要包含包数据指令
-不需要setupext.custominstalldata类中的代码
准备步骤:
-如果包包含C源扩展:
-将C源放在顶层下的目录中
|-将上面的c\\-dir设置为顶层下的目录名
-使用顶层下的数据创建其他目录
-如果希望包含顶层(顶层以上)中的文件,请将这些文件硬链接到顶层下的目录-例如:
-license
-readme.rst
-或者,将这些文件从
顶层下的目录硬链接到顶层,以便可以在顶层看到这些文件
(例如在github中)
-将数据目录设置为要包含
自定义步骤的顶层下的目录列表=====
若要添加要在安装期间的不同步骤执行的shell命令或python可调用文件列表,请修改setupext.config,如下所示:
:
-setupext.config是一个dict,其键表示安装步骤
-支持的步骤在安装程序中ext.known_steps(str列表)
-setupext.config的每个元素本身就是一个dict,具有以下键:
-"pre":dict
-"post":dict
"pre"和"post"dict可以选择包含以下键:
cmdlist-->;list
每个元素都必须是以下元素之一:
str:要与子进程一起执行的shell命令。call
该命令是在shell=true的情况下执行的
不添加其他命令行参数
callable:将使用以下参数
args=(caller):caller是调用类的实例
通常是distutils.cmd.command的实例
pre_post=x:x in['pre','post']
callable可以检索步骤名using
args[0].get_command_name()
如果未设置CmdList,或者CmdList为[]或无,则会忽略相应的
pre/post dict
请参阅pydoc setupext.run_in_order
show_output-->;boolean:di显示外壳命令的stdout
对于可调用项忽略
默认值:true
show_err-->;布尔值:显示外壳命令的stderr(对于stderr)
对于可调用项忽略
默认值:true
ignore_错误-->;布尔值:如果
shell command或callable引发异常或
shell command返回非零返回代码,则继续执行cmdlist的下一个元素
_err和ignorer应用于所有元素
/>
必须在执行安装程序时定义可调用项。py
请注意,只有在执行相应的
步骤时才会执行cmdlist-例如:
-如果禁用字节编译,则install-lib不会运行
-如果包未定义c扩展,构建扩展不会运行
示例:
==
r/>-在安装生成(步骤:生成)开始之前运行shell \命令1和callable \1
代码::python
#shell_command_1将返回一个非零的返回代码
shell_command_1='echo"开始生成";uname--nosuchoption'
shell_command_2='echo"生成外部已完成"'
(
args[0].get_command_name(),
kwargs.get('pre_post','unknown')
setupext.config['build']['post']['show_err']=false
shell_command_1将生成stderr输出并返回非零代码
#如果shell命令中有stderr,将显示(在stderr上)
==
此模块包含简化编写python安装脚本(setup.py)的实用方法。
building c extensions:请参见setupext/doc/setup sample.py
-指定c源的位置
-指定共享库名称
-指定特定的c要编译的源文件
bundle additional files with package-using get \dir \tree()
-include and install c sources under python module directory
-include readme,license and o ther files under python module directory
add a list of shell commands or python cal在安装的不同阶段执行的标签:
-build
-build\\u clib
-build\\u ext
-build\\u py
-build\\u scripts
-install\\u data
-install\\u lib
-install\\u headers
python代码(可调用)可以在每个阶段之前或之后运行。
请注意,如果要使用触发器功能,则需要在包中包含此包。
ns和package layout
==
此setup.py采用以下布局。
顶层-->;python package name
:
——许可证——Github ETC的典型许可证,但不是必需的
/>指向Data_dirx下的文件的硬链接,使其保持在顶层
/>——顶层模块2py
数据目录1
数据目录2文件1-例如许可证2-例如readme.rst
红色库(如果有)将被安装
-附加数据(如果有)(data-dirs)将被安装
-设置包
-在additional keyword args to setup()下
-在addl-kwargs中添加py-modules=[]
-在c扩展详细信息下-如果包包含c扩展n:
-设置libpath
-设置c\\u src \-list
-设置ext \-u模块
c扩展名详细信息
====
或者只需设置一个扩展名的简单情况,您只需设置:
:
c戥src戥files-->;c戥dir中str:c源文件名的列表
=============
i使用package\-dir和package\-u数据指定安装附加的
文件,这些文件是:
-顶层下目录中的文件
-不会自动包括或安装,因为:
-py\-modules directive
-packages=find\_ packages()指令
-c扩展所需的源代码
示例:
-ship并在模块目录下安装c源代码
-ship并安装任何其他文件-例如:
-documentation
-license
-不需要清单。in
-不需要包含包数据指令
-不需要setupext.custominstalldata类中的代码
准备步骤:
-如果包包含C源扩展:
-将C源放在顶层下的目录中
|-将上面的c\\-dir设置为顶层下的目录名
-使用顶层下的数据创建其他目录
-如果希望包含顶层(顶层以上)中的文件,请将这些文件硬链接到顶层下的目录-例如:
-license
-readme.rst
-或者,将这些文件从
顶层下的目录硬链接到顶层,以便可以在顶层看到这些文件
(例如在github中)
-将数据目录设置为要包含
自定义步骤的顶层下的目录列表=====
若要添加要在安装期间的不同步骤执行的shell命令或python可调用文件列表,请修改setupext.config,如下所示:
:
-setupext.config是一个dict,其键表示安装步骤
-支持的步骤在安装程序中ext.known_steps(str列表)
-setupext.config的每个元素本身就是一个dict,具有以下键:
-"pre":dict
-"post":dict
"pre"和"post"dict可以选择包含以下键:
cmdlist-->;list
每个元素都必须是以下元素之一:
str:要与子进程一起执行的shell命令。call
该命令是在shell=true的情况下执行的
不添加其他命令行参数
callable:将使用以下参数
args=(caller):caller是调用类的实例
通常是distutils.cmd.command的实例
pre_post=x:x in['pre','post']
callable可以检索步骤名using
args[0].get_command_name()
如果未设置CmdList,或者CmdList为[]或无,则会忽略相应的
pre/post dict
请参阅pydoc setupext.run_in_order
show_output-->;boolean:di显示外壳命令的stdout
对于可调用项忽略
默认值:true
show_err-->;布尔值:显示外壳命令的stderr(对于stderr)
对于可调用项忽略
默认值:true
ignore_错误-->;布尔值:如果
shell command或callable引发异常或
shell command返回非零返回代码,则继续执行cmdlist的下一个元素
_err和ignorer应用于所有元素
/>
必须在执行安装程序时定义可调用项。py
请注意,只有在执行相应的
步骤时才会执行cmdlist-例如:
-如果禁用字节编译,则install-lib不会运行
-如果包未定义c扩展,构建扩展不会运行
示例:
==
r/>-在安装生成(步骤:生成)开始之前运行shell \命令1和callable \1
代码::python
#shell_command_1将返回一个非零的返回代码
shell_command_1='echo"开始生成";uname--nosuchoption'
shell_command_2='echo"生成外部已完成"'
(
args[0].get_command_name(),
kwargs.get('pre_post','unknown')
setupext.config['build']['post']['show_err']=false
shell_command_1将生成stderr输出并返回非零代码
#如果shell命令中有stderr,将显示(在stderr上)