setup.py脚本的帮助程序模块。

setuphelper的Python项目详细描述


这个python模块将使您的安装脚本更简单 通过尽可能多地自动化“样板文件”来编写 通常都是这样的。而不是调用setup 函数的关键字参数列表很长,您只需设置 设置脚本中的全局变量,然后调用 setup_main function,传递globals()作为其参数。 (setuphelper setup.py脚本本身说明了这种用法。)

helper模块负责翻译 将变量转换为关键字参数,包括自动 推导并产生许多论点 指定一组更简单的数据。作为奖励,如果你是 使用python的标准distutils,setuphelper提供(非常 基本!)支持requires关键字,下载并 为您安装所需的软件包,只要下载它们 pypi上提供了url。(也可以指定本地 通过设置环境将目录作为“存储库” 变量PYPI_LOCAL指向它–请参见CHANGES 有关详细信息,请参阅源存档中的文件。)此功能 当前不支持 包名称(除非您使用的是setuptools,否则 允许这样做–见下文)。

(注意,Python2.5和更高版本的distutils包允许 分发元数据中的requires关键字,但是 不是用它来为你安装任何东西。当然 一些distutils替换(如setuptools)确实提供了这一点 功能;如果使用setuptools,则可以设置 变量__distutils_pkg__'setuptools'和 setuphelper将使用setuptools的支持而不是它自己的支持, 它有一些附加功能,比如允许 所需包的说明符。setuphelper还添加 requiresprovidesobsoletes关键字到 使用^{tt13}时的包元数据$ 使用python版本的命令<;2.5;换句话说,它提供 您支持元数据版本1.1,即使您的python 版本没有。)

因为setuphelper拥有确定 源或二进制分发文件中应该包含什么, 它每次运行时都会自动生成MANIFEST.in,因此 必须手动维护MANIFEST.in文件(如果 是的,它无论如何都会被覆盖)。即使不是 除非您正在运行 作为一个分发命令,setuphelper每次都执行它,因为 检查其输出通常可以帮助您调试 设置脚本中的变量定义。(至少,它有 当然有助于me做到这一点!)

使用setuphelper作为安装程序

此发行版包含一个脚本setuphelper,您可以 可用于利用setuphelper的requires关键字支持 作为安装程序使用。命令行参数 脚本被视为要安装的需求列表, 脚本使用setuphelper下载并安装它们, 就像它们在setup.py脚本中列出一样。如果你 希望使用setuptools'easy_install支持 技术,使用命令行选项--use-setuptools (缩写-s)。

因为这个脚本使用requires关键字功能 在setuphelper中,它有上面提到的限制,即 版本说明符当前可以在包名称之后使用。

安装后脚本支持

另一个好处是,setuphelper允许您自动化 运行安装后脚本;只需设置__post_install__ 要运行的脚本名列表中的setup.py变量 从子shell(这是使用os.system完成的,因此它具有 python命令的限制)。最好允许 从setup.py运行安装后脚本,以便setuphelper 可以确保通过 一旦他们来了就给他们打电话python setup.py install。 打开包装。(请注意,如果使用的是setuptools,则此功能 不起作用,因为setuptools实际上不运行 python setup.py install安装软件包。未来 虚拟企业setuphelper的rsion可能会解除此约束。)

注意,setuphelper会修补中的install_scripts命令 distutils以捕获正确的脚本安装目录。 这可以确保安装后脚本的正确版本 (即刚刚安装的那个)即使有 在您的路径上有多个副本。

安装

当然,要安装setuphelper,只需键入:

$ python setup.py install

在解压setuphelper存档的目录中。 但是,由于setuphelper由安装脚本使用,您将 可能希望将它与您的setup.py一起包含在 python项目的源文件以及 安装在您自己的系统上。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Requestcontextholder在spring 4中具有并发访问权限。IBMWebSphere上的x Web应用程序?   java如何下载、设置和使用Eclipse?   java如何组合这些mysql语句   java JDBC无法连接到openshift上的mysql数据库   如果存在允许正确处理的重载,java对于方便的方法来说是否可行?   使用hibernate序列的java Spring MVC不存在   具有路径的java Selenium ChromeDriver负载扩展问题   读一本书。java中的java文件   退出队列时,Java队列程序结果为空   Java lambda返回带有重复代码问题的列表   java使用意图从其他活动传递数据并在listview中显示   java如何在java中创建JSON输出   java Android:在不破坏或暂停活动的情况下关闭显示   支持Android电视和手机的java多apk   关于Java应用程序测试和调试的一组问题   如何在JavaSE中使用jdbcRealmShiro进行授权   在java中是否有一个无异常检查的URL解析实用程序?   当页面上有多个相同类型的元素时,java会选择一个特定的元素   递归需要帮助发现java代码中的缺陷