如何获得pip-安装的python软件包的蛋或轮文件?

问题描述:

我有星火执行人进口同类错误这里所描述的,只是psycopg2:ImportError: No module named numpy on spark workers如何获得pip-安装的python软件包的蛋或轮文件?

Here它说:“虽然大熊猫是太复杂,分布为* .py文件,你可以为它创建和鸡蛋的依赖关系并将其发送给执行者“。

所以问题是“如何从软件包和它的依赖关系创建egg文件?”如果鸡蛋是传统的,那么还是*。这是否有任何命令在点子?

你想制作一个*。它们比鸡蛋更新,更健壮,并且受Python 2/3支持。

对于像numpy一样受欢迎的东西,您无需费心自己制作*。他们在发行版中包装*,所以你可以下载它。许多python库将有一个*作为其发行版的一部分。看到这里:https://pypi.python.org/pypi/numpy

如果你好奇,看到这里如何使一个一般:https://pip.pypa.io/en/stable/reference/pip_wheel/

或者,您可以在您的目标员工上安装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。

+0

是的,看到了。但是有很多这样的车轮,而且很难为我的系统选择合适的车轮。点子以某种方式为我选择它。有什么办法可以告诉他加载它吗? – Bunyk

+0

你用任何现有的*尝试过吗?版本之间的Numpy兼容性非常好。接口相对稳定。 – mwm314

+0

是的,我尝试了psycopg2-2.7.3.1-cp27-cp27mu-manylinux1_x86_64.whl,它对我很有帮助。我只是问是否有办法用pip,而不是用wget,因为很难弄清楚我是否需​​要x86_64或i686或其他东西。点子知道确切的包。 – Bunyk

您可以使用pip install wheel安装wheel

然后使用python setup.py bdist_wheel创建.whl。您可以在python包的根目录下的dist目录中找到它。如果您想为python 2和python 3启用单个.whl文件,您可能还想通过--universal

More info on wheel