问题标签 [pants]

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

pants - 无效的 gopkg.in 包和 rev in

尝试使用 Pants 构建时,我看到以下错误:

这是我的 BUILD 文件的内容:

查看代码,我发现该错误来自 fetchers.py中第 453 行的正则表达式匹配失败。

我在 Mac OS X 10.10 (Yosemite) 上运行 Pants 版本 0.0.59

0 投票
0 回答
262 浏览

python - pex 打包一个简单的脚本文件

我创建了一个名为 main.py 的简单 python 脚本文件,它需要一些依赖库。我 pip installed 将它们冻结到 requirements.txt (在 virtualenv 中),现在我想将它们打包成一个只运行脚本的可执行文件

生成它的正确方法是什么?

提前致谢

0 投票
0 回答
120 浏览

pants - 消除pants.ini中[binary.dup]步骤的警告

我正在从构建中的二进制“dup”步骤中剔除不必要的输出。

当我运行时,./pants binary <target>我有很多重复的实例META-INF/services

其中有很多,它们是预期的。创建二进制文件的逻辑将这些服务文件合并在一起。

s的格式--binary-dup-exclude是不带目录的文件名列表。这些都共享一个共同的目录前缀,但文件名不同。有没有办法在 dup 步骤中抑制这些警告而不单独列出每个警告?

这是我当前的配置:

0 投票
1 回答
116 浏览

python - 裤子:从协议缓冲区生成 Python

是否可以使用 Pants 从 Protocol Buffers 消息定义生成 Python 代码?

通过查看文档和Pants的示例,我找不到任何说明如何从 Protocol Buffers 消息定义中生成 Python 代码。似乎只支持 Java。

0 投票
1 回答
2796 浏览

pants - 裤子包括 OS X 特定的 Python 轮子

TLDR:裤子获取 OS X 特定的轮子,因为我正在 Mac 上开发。我怎样才能避免这种情况,或者指定我将部署到 Ubuntu?

全文

尝试使用 Pants 打包 Python 应用程序。到目前为止一切顺利,但遇到了一个我一直坚持一段时间的问题。我在 macbook 上开发,但部署到 EC2 Ubuntu。

这是我到目前为止所做的:

  1. 创建了虚拟环境。
  2. 向应用程序添加了 BUILD 文件,并为第三方包提供了建议的 3rd 方模式。
  3. Ran./pants run.py backend:admin_server运行良好并生成dist/admin_server.pex
  4. Scp 那个 .pex 到一个新的 EC2 Ubuntu 盒子上。

但是,当我在那里运行应用程序时,我得到:

问题似乎是 Pants 为这些 2 采用了 OS X 特定的轮子:

pex:- MySQL_python-1.2.5-cp27-none-macosx_10_11_intel.whl pex:- pycrypto-2.6.1-cp27-none-macosx_10_11_intel.whl

我怎样才能避免这种情况,或者指定它们应该在哪个操作系统上运行?

这是完整的输出:

PS:为了确保我没有包含我的 python 库版本,我 pip 卸载了 PyCrypto 和 MySQL-Python。

0 投票
1 回答
98 浏览

python - --version 支持使用 Pants 构建的 Python 程序

如何让Pantsgit describe将某处的输出存储在我的.pex文件中,以便我可以从我正在编写的 Python 代码中访问它?

基本上我希望能够克隆我的项目并这样做:

  1. ./pants binary px
  2. 将结果dist/px.pex分发给某人
  3. 当我在第一步中构建时,有人应该能够做到px.pex --version并打印出我所说的任何内容。git describe.pex

帮助!

0 投票
1 回答
526 浏览

python - python的裤子怎么装?

如何pants在 Python 中安装?

我在谷歌搜索了一段时间,并没有得到一个直接的答案。

我目前正在使用 Linux Mint 和 Python 2.7.3 版。

0 投票
1 回答
800 浏览

python - “Hello World”示例中的裤子构建工具问题

我正在使用 Twitter 的 Pants 构建工具进行“Hello World”练习。在克隆了“pants” repo - 源之后,我成功地在本地配置了裤子。

首先,我在 repo 中创建了一个嵌套目录:

然后,我在该目录中创建了两个文件以将我的应用程序和 BUILD 指定为:

Hello_World.py:

建造:

当我使用 ./pants 运行它时,它运行完美,例如:

然后,我试图通过将“Hello_world.py”更改为添加依赖项:

我还在与以下目录相同的目录中创建了 utility.py:

当我向原始应用程序添加依赖项时,我还将 BUILD 修改为:

但是,当我使用相同的命令调用 ./pants 时,它返回错误:

我的目录中目前有三个文件:

为什么我的应用程序无法从 utility.py 加载库,以及排列文件夹树和 BUILD 文件的正确方法是什么?

  • 我对构建工具有点陌生,如果有人能在回答问题时提供一些使用裤子的背景信息,我将不胜感激。谢谢!!:)
0 投票
1 回答
122 浏览

python - 裤子:无法获得 lxml 分发 pip 要求

我正在创建一个包含 BeautifulSoup 模块的 Python 项目。作为其中的一部分,我需要解析 XML 的能力,并且作为对此的依赖,我需要安装 lxml 模块。

我正在尝试使用 Pants 构建一个 PEX 文件,但我发现我无法解析 lxml 的包,这是 BeautifulSoup 解析 XML 所必需的。

我看到以下错误:

我可以操纵pants.ini文件中的某些内容来拉入这个特定的库吗?

0 投票
0 回答
267 浏览

python - 在 python 2.7.12 上执行裤子构建 PEX 时出错

我有一个使用 Pants 1.0.1 构建的 Python PEX。这个 PEX 是一个工作 python 应用程序,直到 ubuntu 16.04 和 fedora 24 使用 python 2.7.12 发布。现在我收到一个错误,表明 PEX 文件的编码错误:

呃。zip 文件嵌入在 .pex 文件中,因此文件中自然会有非 ascii 字符。

阅读错误消息中的链接,它说我可以在文件顶部放置一个编码,但是,我认为没有可以解决这个问题的编码,是吗?

我不确定此时该怎么做。在我看来,python 2.7.12 打破了 PEX。裤子有更新可以解决这个问题吗?有什么我可以添加到 pex 文件来解决这个问题的吗?

编辑

多一点信息。我不确定为什么这最终很重要,但似乎确实如此。我在构建 PEX 文件后稍微修改它。我将文件顶部的 shebang 从 更改python2.7python. 我希望能够在 python 2.6 和 2.7 版本上运行相同的 PEX,这取决于需要运行的各种发行版上可用的任何版本。看来,如果我不理会它,因为python2.7它在 python 2.7.12 上运行良好。如果我改变它,它就不再起作用了。Ubuntu 16.04 上的默认 python 仍然是 python 2.7,那么为什么要改变python2.7才能python有所作为呢?

更多信息

如果我解压缩 PEX,我可以执行该目录,并且我希望这样做。所以我删除了 PEX 文件的第一行,它有 #! 在里面,剩下的是一个拉链。我将 zip 解压缩到一个名为 unzipped 的目录中。然后我可以python unzipped毫无问题地执行。所以源文件本身的编码似乎不是问题。我无法直接执行 zip。运行时出现同样的错误python unzipped.pyz

我的解决方案

所以这里对我的问题没有很好的答案。由于我修改了生成的 PEX 以删除python2.7要求并将其更改为python,以允许它根据分布在 python 2.6 或 2.7 上运行,我发现它是导致问题的 PEX 的修改。所以我求助于制作 2 个 PEX 文件,一个用于 python 2.7,另一个用于 python 2.6。

最后,我不明白为什么简单地触摸#!PEX 顶部的 会导致 python 不再理解该文件是什么。也许有人可以解释为什么会这样。