问题标签 [distutils]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
866 浏览

python - 如何使用简单的预卸载脚本扩展 distutils?

我发现Question#1321270用于安装后。我目前的主要目标是 bdist_wininst,但我没有找到与卸载相关的任何内容......

澄清一下:
我想在安装后注册一个 com 服务器并在卸载前取消注册它。

扩展答案:
ars 的答案似乎是正确的,但是,为了事情的完整性(我认为文档为这个主题留下了一些改进空间......):
我没有像提到Question#1321270 extended所建议的那样distutils.command.install,但写一个新的 python 脚本调用scripts/install.py并在 setup.py 中设置以下内容:

install.py 肯定会在安装时被调用。看来,尽管它(尽管文档说)在卸载时没有被调用...

0 投票
1 回答
129 浏览

python - 如何将 Gnome 小程序与 distutils 捆绑在一起?

我正在尝试用 Python 编写一个 Gnome 小程序。事实上,我已经编写了这个应用程序,但在打包它时我被卡住了。

我从研究distutils开始。我马上遇到的问题是,在指定 时py_modules,需要扩展.py。但是,Gnome 小程序基本上是 shell 脚本。(当然,它使用 Python 解释器。)

这是我尝试过的......但它不起作用。

此外,该myapp文件必须放入/usr/lib/myapp/. 据我所知,distutils将文件与其他模块一起放入。

我该怎么做呢?

0 投票
4 回答
2934 浏览

python - 如何从 distutils 二进制发行版中剥离源代码?

我想从 distutils 创建一个仅字节码的发行版(不,我确实这样做了;我知道自己在做什么)。使用 setuptools 和 bdist_egg 命令,您可以简单地提供 --exclude-source 参数。不幸的是,标准命令没有这样的选项。

  • 有没有一种简单的方法可以在创建 tar.gz、zip、rpm 或 deb 之前剥离源文件。
  • 是否有相对干净的每个命令方式来执行此操作(例如,仅用于 tar.gz 或 zip)。
0 投票
2 回答
627 浏览

python - 如何使用 python/distutils 依赖系统命令?

我正在寻找最优雅的方式来通知我的图书馆的用户他们需要一个特定的 unix 命令来确保它能够工作......

什么时候是我的库引发错误的最佳时机:

  • 安装 ?
  • 当我的应用程序调用命令时?
  • 在我的库的导入?
  • 两个都?

还有你应该如何检测命令丢失(if not commands.getoutput("which CommandIDependsOn"): raise Exception("you need CommandIDependsOn"))。

我需要建议。

0 投票
4 回答
82174 浏览

python - 如何让 setuptools 安装不在 PyPI 上的包?

我刚刚开始使用 setuptools 和 virtualenv。我的包需要最新的 python-gearman,只能从 GitHub 获得。PyPI 上的 python-gearman 版本是旧版本。Github 源码是 setuptools 兼容的,即有 setup.py 等。有没有办法让 setuptools 下载并安装新版本,而不是在 PyPI 上查找并安装旧版本?

仅供参考,新的 python-gearman 是http://github.com/mtai/python-gearman

0 投票
1 回答
956 浏览

python - 关于 bdist 目录层次结构的问题

我只是做了一个小应用程序,然后setup.py为它写了一个文件。一切似乎都在工作,除了我无法弄清楚一件小事。

bdist选项传递给 时setup.py,它会创建归档 gzipped tar 文件。当我打开该文件时,我注意到目录结构是:

这是什么原因?通常,我希望文件夹 1 和文件夹 2 位于根目录中。为什么要bdist添加顶级目录?有什么办法可以摆脱它们(更重要的是,我应该摆脱它们吗?)

0 投票
1 回答
197 浏览

python - python distutils,用生成的源代码编写c扩展

我已经用 C 编写了一个 Python 扩展库,我目前正在使用 distutils 来构建它。我还有一个 Python 脚本,它生成一个 .h 文件,我想将它包含在我的扩展中。

是否可以使用 distutils 设置这样的依赖项?它是否能够注意到我的脚本何时更改、重新生成 .h 文件并重新编译扩展名?

0 投票
2 回答
5076 浏览

python - 从 Python setuptools 创建可启动的 GUI 脚本(没有控制台窗口!)

我目前为基于 Python 的 GUI 添加可执行文件的方式是:

在 Windows 上,这将在 Python 的脚本文件夹中创建“frontend.exe”和“frontend-script.pyw”(使用 Python 2.6)。当我执行 EXE 文件时,会显示一个控制台窗口,但 PYW 文件可以正常工作而没有显示。

所以我的问题是:如何让 EXE 文件在没有控制台窗口的情况下执行程序?该解决方案也应该在 Linux 上运行(不建议使用 py2exe ;)。

0 投票
6 回答
39335 浏览

python - MANIFEST.in 在“python setup.py install”上被忽略 - 没有安装数据文件?

这是我的精简 setup.py 脚本,其中删除了非代码内容:

清单.in:

当我运行“python setup.py install sdist”时,我得到了一个不错的 .tar.gz,其中包含一个“whyteboard-0.41”根文件夹,其中包含我的 locale/images/ 和 whyteboard-help/ 文件夹。这也有我的whyteboard.py 脚本,它从whyteboard 源包中启动我的程序。

所以:

这反映了我的程序的来源,一切都应该是这样,并且是正确的。

但是,当我运行“python setup.py install”时,我的数据文件都没有被写入——只有“whyteboard”源包,whyteboard.py 放在 /usr/local/lib/python2.6/dist-packages/ .

理想情况下,我希望与在 dist-packages 中创建的 .tar.gz 文件中生成的目录结构相同,因为这是我的程序期望查找其资源的方式。

我怎样才能“安装”来创建这个目录结构?据我所知,它似乎忽略了我的清单文件。

0 投票
2 回答
2626 浏览

python - Python:在基于 distutils 的项目中安装手册页

我有一个 Python 项目,它基本上是一组命令行脚本和一个帮助程序包。由于这些脚本有许多命令行选项,我决定为每个脚本创建一个手册页,并使用 ronn ( http://rtomayko.github.com/ronn/ ) 在 Markdown 中编写手册并从中生成 mdoc。

问题是:如何在基于 distutils 的项目中生成和安装手册页?

我想出了以下解决方案:创建一个简单的install.sh脚本来生成和安装手册页。我从重载的“安装”命令中调用此脚本并将指定的前缀传递给它……您可以在此处查看实际代码:http: //github.com/novel/lc-tools

我不太喜欢这个解决方案,因为我必须向 setup.py 添加一些技巧并实现一个 shell 脚本。此外,我使用 ${PREFIX}/share/man 作为手册页路径,它并不适用于所有系统,例如 FreeBSD 似乎将第 3 方手册页安装到 /usr/local/man (即没有share/)。

有没有更优雅的方法来做到这一点?