问题标签 [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 回答
1433 浏览

python - 嵌套的 Python C 扩展/模块?

如何编译 C-Python 模块以使其对另一个模块是本地的?例如,如果我有一个名为“bar”的模块和另一个名为“mymodule”的模块,我如何编译“bar”以便它通过“import mymodule.bar”导入?

(抱歉,如果措辞不好,我不确定它的正确术语是什么。)

我在 setup.py 中尝试了以下操作,但似乎不起作用:

编辑

谢谢亚历克斯。所以这就是我最终使用的:

当然还有一个名为“mymodule”的文件夹,其中包含__init__.py.

0 投票
1 回答
133 浏览

python - 为不同版本的 Python 上传不同版本的包到 cheeseshop

我有一个开源 Python 项目(称为 GarlicSim),我为 Python 版本 2.4、2.5、2.6 和 3.1 维护了 4 个不同版本。是的,也许这很不寻常,但我喜欢使用尽可能多的功能。我将它们保存在存储库的 4 个不同的分支中。

现在我想将我的项目上传到奶酪店。这样做的方法是什么?我希望用户会自动获得适合其 Python 版本的 GarlicSim 版本。我怎么做?

0 投票
4 回答
15705 浏览

python - 自定义 distutils 命令

我有一个名为“example”的库,正在安装到我的全局站点包目录中。但是,我希望能够安装两个版本,一个用于生产,一个用于测试(我有一个 Web 应用程序和其他以这种方式进行版本控制的东西)。

有没有办法指定,比如“python setup.py stage”,它不仅可以将不同的鸡蛋安装到站点包中,还可以将模块从“example”重命名为“example_stage”或类似的东西?

如果 distutils 不能做到这一点,还有其他工具可以做到吗?

0 投票
2 回答
882 浏览

python - 奇怪的 PyPI 身份验证行为

我正在尝试将我的包上传到 PyPI。它要求我识别,我做了,它给出了一个 OK 响应(除非识别正确,否则不会发生),但随后它声称我没有识别!为什么?

0 投票
3 回答
11560 浏览

python - How can I run a Makefile in setup.py?

I need to compile ICU using it's own build mechanism. Therefore the question:

How can I run a Makefile from setup.py? Obviously, I only want it to run during the build process, not while installing.

0 投票
1 回答
581 浏览

python - 如何获取 distutils 用于构建的拱字符串?

当我使用 构建 ac 扩展python setup.py build时,结果是在名为的目录下创建的

lib.操作系统,CPU和Python版本更改后的部分。

有没有办法可以从 python 访问适合我当前架构的字符串?希望以一种保证与 distutils 正在创建的方式相匹配的方式。

0 投票
2 回答
5272 浏览

python - 如何运行已安装的 python 脚本?

我使用 distutils 安装我的 python 包,这个 setup.py :

在 linux/mac 上,它按预期工作:

在 Windows 上,脚本“plugh”不运行:

我在http://bugs.python.org/issue7231发现了错误报告,即安装 python 时 \Scripts 目录未添加到 PATH,因此我应用了该票证中描述的解决方法(即添加 C:\Python25\Scripts到路径)

这是在 Windows 上不起作用的东西吗?如果是这样,您应该如何在 Windows 机器上使用 python 脚本?

我想我可以检测到 Windows,并在列表中添加一个名为“plugh.bat”的附加脚本,其中包含以下内容:

但这真的是正确的答案吗?我原以为有了 distutils 为 Windows 包含的所有自定义项,会有比这更好的答案。

0 投票
2 回答
431 浏览

python - python包的数据缓存

我有一个 python 模块,它生成我想缓存在磁盘上以供将来使用的大型数据文件。对于普通用户而言,缓存可能最终会达到数百 MB,但可以节省大量计算时间。

这些文件不是随模块分发的,而是在第一次使用给定的参数集运行代码时生成的。

到目前为止,我自己只使用了一个文件模块,并将它们放在相对于模块(data/)的硬编码路径中。但是我现在需要使用 distutils 在 Python 包中分发这个模块,我想知道是否有标准的方法来做到这一点。

我正在考虑类似 scipy.weave 的编译缓存之类的东西 - 但想知道是否有更现代的支持方式来做这件事。在 *nix 平台上,我希望它可以进入,~/.something但我不确定 Windows 等价物是什么。此外,这应该是可配置的,以便用户可以在更方便的情况下将其指向其他地方,或者在用户之间共享缓存目录。这样的配置文件应该如何工作?它应该去哪里?

或者我应该将它作为安装选项,或者通过 setup.py 旁边的配置文件,或者通过手动编辑 setup.py 进行设置,然后在安装前对模块中的目录进行硬编码?

任何指针都非常受欢迎......

0 投票
4 回答
2001 浏览

python - 使用 distutils/setuptools 配置扩展模块

我有一个 Python 项目,其中包含用 C 编写的多个扩展模块,它们与第三方库通信。但是,根据用户的环境和选项,不应构建某些模块,并且应启用/禁用某些编译器标志。问题是我必须在调用 setup() 之前构建扩展模块列表,理想情况下我想使用 distutils.Command 子类来处理用户选项。现在我有几个选择:

  1. 需要在构建模块之前运行“python setup.py configure”命令,将信息存储在 pickle 文件中,并在脚本下次运行时使用它来生成扩展列表。这就是我的项目目前的工作方式,这似乎很愚蠢。

  2. 手动从 sys.argv 中抓取选项并使用它们来构建列表。这不是一个长期的解决方案,因为我最终会想在构建之前运行一些脚本来检查设置。

  3. 从 distutils 子类 build_ext,在 run() 方法的开头进行我的配置(可能也使用通过 (2) 发送的选项)并在构建之前直接修改 self.distribution.ext_modules。但是,我担心这可能会使 setuptools 混淆,因为它可能假定在调用 setup() 时扩展模块列表是固定的。这也意味着当使用 build_ext 以外的命令调用 setup() 时,扩展模块列表为空。

有没有首选的方法来做到这一点?

0 投票
1 回答
992 浏览

python - 如何使用 glade GUI 分发 python 应用程序?

我正在尝试分发我用 python 编写的这个应用程序。该应用程序由 2 个 python 脚本组成。2个.glade文件和1个.png文件。

这是我在这个项目上的目录结构

vasmcc只是 gui 的 python 脚本......真正的 python 模块将是vasm.py.

我的问题是,我如何分发它以使其包含.glade.png文件?

通过分发我的意思是提供一个可安装的源包,可以安装到另一个系统上。