【问题标题】:stopping setup.py from installing as egg停止 setup.py 安装为 egg
【发布时间】:2011-09-12 03:52:03
【问题描述】:

如何阻止setup.py 将软件包安装为鸡蛋?或者更好的是,我如何 easy_install 将软件包安装为 egg

sudo python setup.py install

原因是PyDevegg格式的包比较挑剔……我现在感兴趣的包是boto

更新:我找到了蛮力的方法:

sudo easy_install -m boto
cd path/to/boto-xyz.egg
sudo mv boto ..
sudo rm -rf boto-xyz.egg

【问题讨论】:

    标签: python pydev setuptools easy-install


    【解决方案1】:

    解决方案 1:

    我觉得我错过了一些微妙或重要的东西(在提出问题多年后遇到此页面并且没有找到令人满意的答案)但是以下内容对我来说很好:

    python setup.py install --single-version-externally-managed --root=/
    

    压缩的*.egg 文件是setuptools 的发明(我不是它们的忠实粉丝,尽管我理解它们的创建原因)并且因为setup.py 脚本使用(并且可能需要)setuptools,包最终被安装为压缩的*.egg 文件。

    解决方案 2:

    上面的命令行选项是 pip(Python 包管理器)使用的similar to those,它暗示了另一种方法可以阻止将包安装为压缩的*.egg 文件:只需使用 pip!如果您有一个包含 setup.py 脚本的目录,您可以在该目录中运行以下命令以使用 pip 安装软件包:

    pip install .
    

    这是对上述 setup.py 命令的改进,因为它可以跟踪其他元数据(例如,跟踪已安装文件可以更可靠地删除)。

    【讨论】:

    • 哈!我多年来一直在使用 pip,但不知道 pip install . 是可能的。 :-)
    • 这对于下载和执行源代码安装的人来说尤其重要,使用 python setup.py install 的旧方式安装通常会进行 egg 安装。
    • pip install . 也适用于 Windows 10,并解决了我从 github 下载 repo 并在安装到 virtualenv 时将其放入 .egg 的问题
    • 我厌倦了setuptools.setup...切换回disutils.core.setup 后一切都恢复正常了。感谢您的提示!
    【解决方案2】:

    多年后,同样的问题,对接受的答案不满意。在 Google 群组中找到此内容:

    pushd /path/to/my/package/ 
    python setup.py sdist 
    popd 
    pip install /path/to/my/package/dist/package-1.0.tar.gz
    

    说明: python setup.py sdist 创建一个自然不是 *.egg 的源代码分发!生成的存档(unix 中的 .tar.gz,windows 中的 .zip)可以像任何带有 pip 的远程模块一样安装。它甚至不需要额外的参数!这会产生所需的完全可浏览的模块。

    【讨论】:

    • 使用pusd popdcd cd - 有什么好处?还是只是味道?
    • 我只是参考。我会说这只是味道(味道:Linux)。
    • 这不涉及包含已编译二进制代码的包。我认为它并没有真正完全解决这里的问题。
    猜你喜欢
    • 2018-02-06
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 2016-10-02
    • 2011-11-29
    • 2011-05-17
    • 2015-08-20
    相关资源
    最近更新 更多