问题标签 [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.
python - 为什么 `virtualenv` 找不到 `pkg_resources`?
我正在尝试在 Ubuntu 中使用 virtualenv 来安装本地虚拟 Python 环境。当我运行 shell 命令时:
它抛出一个它不能 import 的异常pkg_resources
。但是当我打开一个 Python shell 并且from pkg_resources import load_entry_point
它运行良好时。作为参考,完整的堆栈跟踪如下。
我尝试了这里提出的解决方案https://stackoverflow.com/a/10538412/42897但没有任何效果。
python - pkg_resources.DistributionNotFound:金字塔==1.3a7
所以,几天前,我试图用金字塔启动 Django,并在我的技能之外使用一些网络魔法,结果搞砸了很多重要的事情。有一段时间我什至无法运行 python。我最终通过更改我的系统变量 PYTHONHOME 来解决这个问题。
现在我遇到了 pserve 的问题。当我运行 pserve development.ini --reload 我得到一个回溯:
关于寻找什么的任何建议?我有两个朋友可以运行一切,所以如果有什么我应该比较的,我可以做到。
谢谢!
python - pkg_resources.find_distributions("/dirpath with sdist zip file")
看来我无法从 pkg_resources.find_distributions("/dirpath with sdist zip file") 获取分发信息。
有人能给我一些启示吗?
python - 从 egg 内部访问 python egg 中的文件
问题是试图获得有关如何执行此操作的确切说明。之前的尝试很少,似乎不是完整的解决方案:
手头的任务是读取有关运行程序的鸡蛋的信息。据我了解,有几种方法:
硬编码鸡蛋的位置并将其视为 zip 存档 - 可以,但不够灵活,因为如果文件移动到另一个位置,则需要对其进行编辑和重新编译
使用
ResourceManager().resource_filename(__name__, filename)
- 这似乎受到限制,因为我无法访问鸡蛋内的文件,但不能访问包内的文件。文件名中的“../../EGG-INFO/PKG-INFO”之类的符号在给出 KeyError 时不起作用。所以也不好。使用
dist = pkg_resources.get_distribution("dist_name")
然后使用 dist 对象来获取信息,但我无法从文档中理解我应该如何指定我的分发名称?它找不到它。
所以,我正在寻找关于使用pkg_resources.get_distribution
plus 的正确解决方案,如果最终有一个完整的解决方案可以从鸡蛋内部读取任何文件,那就太好了。
谢谢!
python - 如何在 pkg_resources 中实现 resource_filename?
我写了一个包,它导入了分发 0.6.35pkg_resource
提供的包。我导入是因为我需要它来获取内置数据的路径。但是,python3中没有内置,需要安装。关于这个,我有两个问题:pkg_resource
resource_filename
pkg_resource
为什么 Python3 没有
pkg_resource
在其官方发行版中提供?这是否意味着pkg_resource
已弃用或Python3
有pkg_resource
内置的替代包?如果 Python3 没有替代包,我如何使用内置库
pkg_resource
编写自己的版本?resource_filename
做起来容易吗?
谢谢!
python - python:如何在运行时检查额外的要求?
我们的主应用程序有一些额外的功能,用户可以启用。这些功能在他们自己的目录中。这些功能可能需要额外的依赖。我正在考虑将它们放在一个requires.txt
文件中。在运行时,我们想让人们知道该功能是否会中断。我目前正在考虑这样的事情:
这是正确的、蟒蛇式的做事方式吗?这有意义吗?
小更新:为什么如此复杂,而不是try: import ... except ImportError: ...
像一个答案中建议的那样:
- 我们的插件可能有很多依赖项。创建如下所示的实际代码非常冗长。
- 某些插件可能需要特定版本的包。需要包装特定测试或
pkg_resources
无论如何都要使用的测试。所以这就是我上面的想法使用 pkg_resources 的原因。 - 我们想为可以运行的插件运行单元测试。在单元测试中处理 ImportError 并不好。拥有一个
can_we_unit_test_this_plugin(plugin)
函数会让事情变得更容易。
第二次更新:extra_require
insetup.py
呢?
- 人们经常想念安装那些。好吧,不好的借口。
- 我的愿景是,从上面提到的各个子目录中为各个功能
setup.py
加载直接。但这确实是下一步。extra_require
requires.txt
python - Python:写入包中的文件?
使用这个一般结构:
我有一个将名称列表保存到的脚本client.log
,因此我不必在每次需要访问它或运行模块时重新初始化该列表。在我用 设置这个结构之前pkg_resources
,我使用了open('.../data/client.log', 'w')
显式路径更新日志,但这不再起作用。
有没有办法在模块中编辑数据文件?或者有没有更好的方法来保存这个列表?
python - Python setuptools 入口点和子应用程序作为子进程
我在 Windows 上工作并开发一个将分发给最终用户的应用程序。
我有一个 setupttools 发行版,其中包含大量 python 包。此发行版声明了一些指向我代码中各种函数的 console_scripts 入口点。
这些入口点之一注定是更新程序应用程序。我目前正在使用子进程将其作为子进程启动并指定 python 脚本的完整路径。
我想做的是使用生成的 setuptools 入口点存根可执行文件作为要启动的子进程。
我可以通过以下方式获取子应用程序的入口点:
这给了我它的python函数。有没有办法从这个函数到我的 venv 中生成的 setuptools 脚本包装器?
感谢您的帮助。
beautifulsoup - 美丽的汤和 pkg_resources
我正在尝试使用美丽的汤。我按照说明安装在我的 mac 终端 easy_install 中,虽然过程似乎很顺利,但当我尝试从 bs4 导入时,出现 ImportError,说这样的模块不存在。
我用谷歌搜索它,经过几次尝试,我的终端说为了使用漂亮的汤,我应该以某种方式从 pkg_resources 中要求该包。
“因为安装了这个发行版--multi-version,在你可以在应用程序中从这个包中导入模块之前,你需要'import pkg_resources'然后使用类似于这些示例之一的'require()'调用,在为了选择所需的版本:
pkg_resources.require("beautifulsoup4") # 最新安装的版本"
因此,我尝试导入 pkg_resources ,但这也导致了死路。我不知道该怎么办。
python - 如何使源代码控制的 pip 包满足其他包的要求
从存储库安装包时,会pip freeze
生成该包的存储库路径,而不是包名称/版本。例子:
当另一个应用程序需要这样的包时,它似乎无法识别。例子:
应该如何避免此类问题?