停止setup.py安装为egg

时间:2011-06-10 01:13:49

标签: python pydev setuptools easy-install

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

  

sudo python setup.py install

原因PyDev对于egg格式的软件包非常挑剔...我目前感兴趣的软件包是boto

更新:我找到了强力的方式:

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

2 个答案:

答案 0 :(得分:57)

我觉得我错过了一些微妙或重要的东西(在问到问题后几年遇到这个页面而没有找到令人满意的答案)但是以下情况对我来说很好:

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

压缩的*.egg文件是setuptools的一项发明(我不是他们的忠实粉丝,虽然我理解它们是为什么被创建的)并且因为setup.py脚本正在使用(和可能需要)setuptools,包最终被安装为压缩的*.egg文件。

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

pip install .

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

答案 1 :(得分:16)

多年以后,同样的问题,对接受的答案不满意。在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的远程模块一样安装。它甚至不需要额外的参数!这样就形成了所需的完全可浏览模块。