问题标签 [pkg-resources]

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 投票
2 回答
1275 浏览

python - 访问 python egg 自己的元数据

我使用 setuptools 制作了一个 python egg,并希望在运行时访问它的元数据。我目前正在工作:

但如果我安装了同一个鸡蛋的多个版本,这可能会无法正常工作。如果我同时安装了 egg 和开发版本,那么从开发版本运行此代码将获取已安装 egg 的版本。

那么,我如何获取我的鸡蛋的元数据而不是我系统上安装的一些随机匹配的鸡蛋?

0 投票
3 回答
718 浏览

python - 如何使用 pkg_resources 手动注册分发?

我正在尝试在 Google App Engine 上安装一个包。该软件包相当广泛地依赖于pkg_resources,但无法setup.py在 App Engine 上运行。

但是,源代码中没有特定于平台的代码,因此只需压缩源代码并将其包含在系统路径中是没有问题的。而且我已经pkg_resources安装了一个版本并且可以正常工作。

唯一的问题是让包实际注册pkg_resources所以当它调用时,iter_entry_points它可以找到合适的插件。

我需要调用哪些方法来sys.path使用所有适当的元数据注册模块,以及如何确定元数据需要是什么?

0 投票
4 回答
1180 浏览

python - 如何在一个位置处理多个平台的 python 鸡蛋?

我们的所有系统都有一个通用的 python 安装,以确保每个系统都有相同的 python 安装并缓解配置问题。此安装位于共享驱动器上。我们还有多个共享此安装的平台。我们通过在编译 python 时设置 --exec-prefix 配置选项来解决冲突的特定于平台的文件。

我的问题是我现在想使用与平台相关的easy_install(或其他方式)安装一个鸡蛋。easy_install 将 egg 放在安装的平台无关部分的 site-packages 目录中。鸡蛋的名字里面有平台,所以应该没有冲突。但是 python 只会加载它找到的第一个。(因此,在 Solaris 上,它可能会尝试加载 Linux egg)。修改 easy-install.pth 文件可以改变它找到的那个,但这没什么用。

我可以将 .egg 文件移动到依赖于平台的包目录中,然后使用 pkg_resources.require() 加载它们(或手动调整路径)。但似乎我不应该这样做,因为平台是以鸡蛋的名义。

有没有更通用的方法可以确保 python 为正确的平台加载鸡蛋?

0 投票
1 回答
2251 浏览

python - 安装 setuptools 后找不到 pkg_resources

我正在尝试在 Debian 5.0.3(64 位)上编译和安装 python2.6.4。我使用“make altinstall”安装,因为我想将 Deb5.0 附带的 python 2.5.2 作为我的默认 python。

在此之后,我使用命令“sudo sh setuptools-0.6c11-py2.6.egg --prefix=/usr/local”安装了 setuptools 0.6c11。但是,当我尝试从 python2.6 'import pkg_resources' 安装后,它不起作用说'ImportError:没有名为 pkg_resources 的模块'。没有 pkg​​_resources,我几乎无能为力。

有人可以在这里分享可能出了什么问题或缺少什么吗?

0 投票
1 回答
2575 浏览

python - 使用 pkg_resources 时以通用换行模式打开文件?

我正在处理一个 CSV 文件并具有以下工作代码:

但是,为了与代码库中的其他地方兼容,我需要使用文件对象 using pkg_resources.resource_stream,如下所示:

(我在这里简化了——基本上csv.reader代码在一个我无法控制的函数中,它需要一个fileobj.)

这会引发以下错误。

知道我如何使用通用换行模式fileobj吗?我在文档中看不到任何关于此的pkg_resources内容。

谢谢。

0 投票
2 回答
2258 浏览

python - pylint 不喜欢 pkg_resources.resource_filename

在我的脚本中,我使用:

python from pkg_resources import resource_filename

PyDev 和 pylint 0.23 都在这里抱怨未解决的导入。

E0611 No name 'resource_filename' in module 'pkg_resources'

据我了解,这是因为 PyDev 和 pylint 都只执行源代码分析,而没有实际尝试解析/编译它。并且显然pkg_resources做了一些特别的定义pkg_resources。包装和符号当然在那里,整个事情都很好。两个问题:

  • 我怎样才能让 Eclipse 和 PyDev 都相信他们错了?
  • 首先是什么导致了这个问题?我还没有发现其他人有这种问题,我怀疑我的情况有些独特...... :)

Python 2.7.1(在 OSX 下),分发 0.6.19。

0 投票
1 回答
2278 浏览

macos - Lion OSX 上 .pkg 文件的自定义图标

我已经使用 PackageMaker 创建了一个包,并且想要更改 .pkg 文件的默认图标。经过一番谷歌搜索后,这里http://sveinbjorn.org/osxutils_docs的 seticon 实用程序解决了我对所有 OSX-es 的问题,除了最新的 Lion 10.7(内核 11.0.0)。默认图标被替换为对双击不敏感的灰色方形,看起来像文件关联损坏。

另外两天的谷歌搜索让我了解了资源分叉、SetFile(1) 和其他一些有用的工作人员,比如这个旧线程更改包制造商创建的包的图标,但仍然没有运气。

我正在尝试做类似的事情:

目标=pack.pkg

icon_filename="$(perl -e 'print "Icon\r"')"

触摸“$target/..namedfork/rsrc/$icon_filename”

cp "Icon.icns" "$target/..namedfork/rsrc/$icon_filename"

/开发者/工具/SetFile -a C "$target"

并得到: build-Mac:pack.pkg/..namedfork/ 不是目录。

我究竟做错了什么?有人能告诉我 Lion 中资源分叉的区别吗?还有其他可编写脚本的解决方案吗?

请注意,我是 MAC 的新手,我会感谢傻瓜的详细答案。

0 投票
2 回答
9714 浏览

python - 使用 pkg_resources 获取软件包版本?

在 $PYTHONPATH 或 sys.path 中获取包的包版本的推荐方法是什么?我记得 pkg_resource 模块对此有一些功能,但我找不到任何相关信息。请不要指向我使用 version.py 文件并以某种方式阅读它的解决方案。使用 pkg_resources 是要走的路,但究竟如何?

0 投票
1 回答
1448 浏览

python - python:运行时使用 pkg_resources 的多个库版本(pkg_resources.VersionConflict 错误)

我正在尝试在同一个 python 脚本中使用同一个库的两个不同版本(使用 easy_install --multi-version 安装)。下面的代码说明了总体思路。

如果我独立调用每个版本,一切都很好。如果我想调用一个版本,然后调用另一个版本,则会收到 VersionConflict 错误。

必须有一种方法可以在加载另一个之前从工作集中“卸载”以前的发行版,但我似乎总是在阅读pkg_resources 手册时迷路。

谁能指出我解决这个问题的正确方法?非常感谢。

0 投票
1 回答
5255 浏览

python - 如何使用 pkg_resources 从当前发行版中加载 python 包资源?

我有一个 Python 包,其中包含一些 css 样式表,我将其作为资源包含,如下所示:

我现在想将其中一个包含的资源作为字符串加载。从当前包中加载资源的最佳方法是什么?

我看到该pkg_resources.Distribution对象有一个get_resource_string()方法,但我不知道如何使用它:如何获取Distribution当前包的对象?