阻止setup.py安装为egg

2024-06-01 08:53:55 发布

您现在位置:Python中文网/ 问答频道 /正文

如何阻止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

Tags: install方法pyegg格式easysetupsudo
2条回答

我觉得我错过了一些微妙的或重要的东西(在问题被问了几年后遇到了这一页,却没有找到满意的答案),但是以下几点对我很好:

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

压缩的*.egg文件是setuptools的一个发明(虽然我不太喜欢它们,但我知道它们为什么被创建),并且由于setup.py脚本正在使用(可能需要)设置工具,因此包最终被安装为压缩的*.egg文件。

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

pip install .

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

多年后,同样的问题,不满意接受的答案。在谷歌群组中找到了这个:

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!生成的存档文件(.tar.gz在unix中,.zip在windows中)可以像使用pip的任何远程模块一样安装。它甚至不需要额外的参数!这将产生所需的完全可浏览模块。

相关问题 更多 >