gpt4 book ai didi

python - 如何获取pip安装的python包的egg或wheel文件?

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:58 26 4
gpt4 key购买 nike

我在此处描述的 Spark 执行器上有类似的导入错误,只是使用 psycopg2:ImportError: No module named numpy on spark workers

Here它说“虽然 pandas 太复杂而无法作为 *.py 文件分发,但您可以为它及其依赖项创建一个鸡蛋并将其发送给执行者”。

所以问题是“如何从包及其依赖项创建 egg 文件?”或者轮子,以防鸡蛋是遗留物。 pip 中有这方面的命令吗?

最佳答案

您想制造一个轮子。它们比 egg 更新、更健壮,并且受 Python 2/3 支持。

对于像 numpy 这样流行的东西,你不需要费心自己造轮子。他们在他们的发行版中打包了轮子,所以你可以下载它。许多 python 库将有一个轮子作为其分发的一部分。看这里:https://pypi.python.org/pypi/numpy

如果你很好奇,请看这里如何制作一个:https://pip.pypa.io/en/stable/reference/pip_wheel/ .

或者,您可以只在目标 worker 上安装 numpy。

编辑:

在您发表评论之后,我认为有必要提及 pipdeptree 实用程序。如果您需要手动查看 pip 依赖项是什么,此实用程序将为您列出它们。这是一个例子:

$ pipdeptree
3to2==1.1.1
anaconda-navigator==1.2.1
ansible==2.2.1.0
- jinja2 [required: <2.9, installed: 2.8]
- MarkupSafe [required: Any, installed: 0.23]
- paramiko [required: Any, installed: 2.1.1]
- cryptography [required: >=1.1, installed: 1.4]
- cffi [required: >=1.4.1, installed: 1.6.0]
- pycparser [required: Any, installed: 2.14]
- enum34 [required: Any, installed: 1.1.6]
- idna [required: >=2.0, installed: 2.1]
- ipaddress [required: Any, installed: 1.0.16]
- pyasn1 [required: >=0.1.8, installed: 0.1.9]
- setuptools [required: >=11.3, installed: 23.0.0]
- six [required: >=1.4.1, installed: 1.10.0]
- pyasn1 [required: >=0.1.7, installed: 0.1.9]
- pycrypto [required: >=2.6, installed: 2.6.1]
- PyYAML [required: Any, installed: 3.11]
- setuptools [required: Any, installed: 23.0.0

如果您正在使用 Pyspark 并且需要打包您的依赖项,pip 无法自动为您执行此操作。 Pyspark 有自己的依赖管理,pip 对此一无所知。据我所知,你能做的最好的事情就是列出依赖项并手动将它们推过去。

此外,Pyspark 不依赖于 numpy 或 psycopg2,因此如果您告诉 pip 的只是您的 Pyspark 版本,pip 不可能告诉您您需要它们。该依赖项已由您引入,因此您有责任将其提供给 Pyspark。

作为旁注,我们使用引导脚本在启动集群之前安装我们的依赖项(如 numpy)。它似乎运作良好。这样你就可以在脚本中列出一次你需要的库,然后你就可以忘记它了。

HTH.

关于python - 如何获取pip安装的python包的egg或wheel文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46665571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com