如何阻止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
答案 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的远程模块一样安装。它甚至不需要额外的参数!这样就形成了所需的完全可浏览模块。