问题标签 [setup.py]

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 回答
505 浏览

python - 不考虑子包中的文件

我正在尝试从我的项目中创建一个 .exe,但是 py2exe 似乎失败了,因为我添加了一个包含外部库的 lib 子包。

这是我的项目的设置方式:

我不想将测试包、doc 和 data 文件夹包含在我的 exe 中。我的可执行文件的根目录应该是 facemovie 包。

我正在尝试通过我的 setup.py 文件创建可执行文件,该文件如下:

如您所见,我的应用程序的主入口文件是 Facemovifier.py。在我添加 lib 子包之前,一切都运行良好。

当我运行 py2exe 命令时,这是输出的一部分:

如您所见,lib/exif 文件实际上是复制的,但之后找不到。

当我尝试运行可执行文件时,输出如下:

这是导致错误的 Facemovie.py 行:

最近几天我尝试了各种方法并阅读了很多文档,但始终无法理解问题的根源。我有需要的init .py 文件,我的 Python 代码运行没有任何问题。

我真的很感激任何提示。

谢谢 !

编辑 :

终于解决了问题。@mata 有正确的解决方案(尽管我在此处发布之前已经尝试过这些行)。

实际问题来自于 py2exe 通过将我的 py 文件复制到

并且显然使用它们来创建exe。在创建期间,它们被编译为 .pyc。

可执行文件的进一步创建跳过了编译,因为 site-packages 文件夹已经包含 .pyc 文件

在构建之前,我找到了使用 ant 目标删除这些文件的临时解决方案,但我想知道这是否是好的做法。

在我达到稳定状态之前,py2exe 不应该避免将任何内容复制到站点包中吗?

0 投票
2 回答
1667 浏览

python - 如何说服 setuptools 为 setup_require 或 tests_require 中的 requires 包使用临时目录?

在里面setup.py我有这样的东西:

问题是,当我运行./setup.py test它时,它会下载并解压目录中的这些模块setup.py

我怎样才能说服它为此使用一个临时目录,我不想用这些污染源代码控制系统,我不想开始添加很多很多排除模式。

0 投票
1 回答
632 浏览

python - setup.py :创建与 ant 脚本一样的命令?

我在 python 下有一个项目,并且有一个 setup.py 脚本,可以为每个 realease 构建我的 egg 和 .exe 文件。我习惯使用 ant 脚本,在这里我可以轻松定义目标。

我可能会错过一些东西,但我找不到任何解释如何使用 distutils 创建此类命令的文档。(好吧,我实际上发现了这一点,但这作为文档很短:s)

以下是我想要自动化的一些示例:

  • 为各种平台(exe、pypi、linux、source)创建包
  • 构建文档(pdf、html、rst)
  • 压缩我的样本,将它们移动到远处
  • 将新包上传到 pypi
  • 运行测试
  • . . .

但最重要的是,我希望能够只用一个命令来完成,就像我使用 ant build 一样。

那么你通常如何用你的 python 项目来完成这些任务呢?虽然我认为在这里添加我的 setup.py 并不重要,但如果需要,我可以这样做。

非常感谢你 !

0 投票
2 回答
5837 浏览

python - 从 Git 存储库安装 Python 包后,缺少一些文件夹

我想从以下 repo https://github.com/geomin/django-countria安装一个包。我使用的命令是pip install git://github.com/geomin/django-countria.git. Pip 将 repo 克隆到一个临时文件夹,然后运行setup.py​​. 问题是安装完成后,包含site_packages文件countria-0.8-py2.7.egg/countria/models.pycountria-0.8-py2.7.egg/countria/__init__.py但没有文件夹。如果我克隆包并运行,我会得到相同的行为。fixtureslocalesetup.py

0 投票
1 回答
868 浏览

python - setup.py 中的 2to3 未转换测试?

我有一个需要同时支持 Python 2 和 3 的 setup.py。

该代码当前可以运行并且可以在 Python 2.x 中安装

如果我将该use_2to3 = True子句添加到我的 setup.py,那么该模块可以安装在 Python 3 中,但是,执行以下操作:

导致失败,因为其中一个测试使用 StringIO 类,并且 Python 3 中的导入行出错(当前from StringIO import StringIO是 ,在 Python3 中应该是from io import StringIO

我认为,一旦添加了 use_2to3 关键字,所有测试(包括单元测试)都会在测试之前由 2to3 处理。

我错过了什么?如果有帮助,我的 setup.py 的大部分内容如下所示:

编辑:我觉得好像 2to3 没有在 a 上运行的原因python setup.py test是它爆炸了,堆栈跟踪的底部显示:

但是,如果我在 test_mymodule.py 上运行 2to3,那么该导入行应该已经改写为:

并且(在最坏的情况下)测试应该单独失败。

0 投票
1 回答
10852 浏览

python - 在使用 setup.py 构建/安装模块期间,如何指定或添加目录到 Python.h 搜索路径?

我正在运行 Linux,并且已经下载了一个我必须安装的 python 模块,除了我的特定 /home/user 目录之外,我不能访问任何其他目录(我没有 root 权限,也没有追求它们的选项)。

这当然需要 Python 源代码。我已经下载并放置在所述用户目录中。

虽然要求管理员将正确的文件复制到 /usr/include/python2.7 是解决此问题的最简单方法,但我希望为此类问题提供更通用和可移植的解决方案。

仅更改模块源中的数据(MANIFEST.in、README.txt、setup.py 等),如何将任意目录添加到 Python.h 和朋友的搜索路径?

(如果没有解决方案,“python setup.py build”将继续返回“Python.h:没有这样的文件或目录”错误)

非常感谢。

0 投票
7 回答
31331 浏览

python - 是否可以使用 dist utils (setup.py) 包含子目录作为包数据的一部分?

基本上我的python包的设置如下:

基本上我只想使用:

因为我的项目总是有人添加示例,我希望可以轻松地从我的应用程序中列出它们。我可以让它适用于示例中的任何文件,但不能通过子目录重新诅咒。这可能吗?

0 投票
1 回答
1205 浏览

python - 使用 cx_Freeze 的下一步是什么?

好的,所以我安装了 python 3.2 并安装了 cx_Freeexe 4.2.3。我有一个名为 Python stuff 的文件夹。在这个文件夹中有 2 个文件。setup.py 和 holg.py(我的应用程序)

这是我的 setup.py:

我一直在做的下一步是运行> cmd:

python setup.py 构建

我得到的是:

'python' 不是内部或外部命令、可运行程序或批处理文件。

我只是一个初学者,所以我需要明确的步骤。也许我的程序应该在不同的文件夹或其他东西中,我不能确定。有谁知道问题是什么?谢谢

0 投票
2 回答
90 浏览

python - 如何使用 setup.py develop “半安装”通常作为鸡蛋安装的插件?

我正在尝试使用Tracand调试插件问题TracMercurial。当打包为鸡蛋并正常部署时,该插件对我来说不太适用。

使用 setup.py develop 会导致插件不可见。使用 setup.py install 工作正常,但我无法调试结果,我打算通过向插件添加一些日志记录代码来做到这一点,这样当模块尝试加载时,我将能够检查环境并查看它失败的地方。

我尝试执行此命令,以便可以开始调试插件中的 python 代码以查看失败的位置以及原因:

这样做之后,site-packages 目录中有一个 egg-link 文件,但是 Trac 没有看到该插件。但是,如果我使用“setup.py install”,并将完整的 .egg 复制到 site-packages 目录,那么 Trac 确实会看到该插件。

显然我不理解“setup.py develop”模式。我的目标是开始调试不在任何虚拟环境中的插件,只需简单地使用“setup.py develop”。

0 投票
1 回答
317 浏览

python - 通过相对路径将 C 文件传递​​给 setup.py

如何在 setup.py 脚本中传递 hello.c 文件的相对路径?使用“../code/Hello.c”时,以下代码不起作用。我收到错误 atal error: error writing to -: Broken pipe 编译终止。该错误不可重现,因此可能是硬件或操作系统问题

例如:我在目录中运行此脚本,script/并且 hello.c 存在于目录中code/