【问题标题】:Why does my python egg not work? - No distributions at all found for为什么我的蟒蛇蛋不起作用? - 没有找到任何分布
【发布时间】:2011-09-11 14:56:10
【问题描述】:

我已经使用以下 setup.py 分发了我的 python 包

#!/usr/bin/env python

from setuptools import setup

setup(name='mypackagename',
      version='0.1',
      description='Tool ....',
      author='Peter Smit',
      author_email='lala@lala.com',
      packages=['mypackagename'],
      package_dir={'': 'src'},
      install_requires=['boto'],
      entry_points = dict(console_scripts=[
        'mypackagenamescript = mypackagename.launcher:run',
        ])
      )

我用python setup.py bdist_egg 创造了这个彩蛋。

现在尝试使用 pip 安装它会出现以下错误:

bin/pip install mypackagename-0.1-py2.6.egg 
Downloading/unpacking mypackagename-0.1-py2.6.egg
  Could not find any downloads that satisfy the requirement mypackagename-0.1-    py2.6.egg
No distributions at all found for mypackagename-0.1-py2.6.egg

在 /home/peter/.pip/pip.log 中存储完整的日志

提到的日志文件显示它试图从 pypi 下载包,显然它不存在。

我做错了什么?如何安装我的这个 egg 以及它的依赖项?

【问题讨论】:

    标签: python distribution pip egg


    【解决方案1】:

    cannot install from eggs.

    如果你希望你的包在 PyPI 上可用,你需要register and account there and upload it。然后你可以简单地说pip install myproject。它将搜索 PyPI,找到它,下载并安装它。

    如果您准备好您的setup.py 并希望在本地安装您的应用程序,您只需说出python setup.py install。您不需要使用 pip 或 easy_install。

    hitchhikers guide to packaging 包含所有这些事情的详细信息。它应该让事情变得清楚。

    【讨论】:

    • 我不希望我的包在 PyPI 上,因为它不会免费提供。 Eggs 似乎是要走的路,但我希望从 PyPi 中获取依赖项。我还不需要 pip 或 easy_install 吗?
    • python setup.py install 将自动拉入依赖项。你根本不需要鸡蛋。它们是二进制分发格式。
    【解决方案2】:

    为什么不使用setuptoolseasy_install

    easy_install mypackagename-0.1-py2.6.egg 
    

    如果您想使用鸡蛋,那就这样吧。

    【讨论】:

    • easy_install 几乎已被pip 取代。
    • @Noufal Ibrahim:所以?不是关于安装本地鸡蛋的问题吗? easy_install 做到了,而且安装 setuptools 只需几秒钟,virtulenv 默认安装它,它的使用远非 ATM 弃用。
    • 我不知道setuptools 或distribute 是否用于创建鸡蛋,但这是一个单独的问题。提问者的主要观点是关于引入根本不需要鸡蛋的依赖关系。您所要做的就是运行install 命令,它将引入依赖项。我不建议使用 easy_install,因为一般的 python 社区已经远离它,鸡蛋和其他东西。
    • 提问者代码,第 3 行:from setuptools import setup...问题总是在鸡蛋上...如果有人问关于驾驶战车的问题,您回答 嘿,你不知道我们搬到汽车上?改用它们 ^^
    • 无论如何,我不是 setuptools 狂热者,只是它很容易获得,提问者用它来制作鸡蛋,easy_install 与本地文件一起工作......为什么要麻烦解决方法或改变它的工作方法?使用 easy_install 并接受它。我用它在服务器上部署应用程序,我对它非常满意:只需 sftp 和 easy_install 鸡蛋,你就完成了......
    【解决方案3】:

    Pip 无法安装鸡蛋。恕我直言,这是一个严重的缺陷。我建议你试试Pyg。只需下载get-pyg.py 脚本并执行即可:

    $ curl -O https://raw.github.com/rubik/pyg/master/get-pyg.py
    $ python get-pyg.py
    Retrieving archive from ... etc.
    

    注意:您也可以通过 easy_install 或 pip 安装它。

    然后就可以使用了:

    $ pyg install mypackagename-0.1-py2.6.egg
    

    Pyg 也支持 virtualenv。

    魔方

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    相关资源
    最近更新 更多