停止setup.py安装为egg

jld*_*ont 54 python pydev setuptools easy-install

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

sudo python setup.py安装

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

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

sudo easy_install -m boto
cd path/to/boto-xyz.egg
sudo mv boto ..
sudo rm -rf boto-xyz.egg
Run Code Online (Sandbox Code Playgroud)

xol*_*lox 62

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

python setup.py install --single-version-externally-managed --root=/
Run Code Online (Sandbox Code Playgroud)

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

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

pip install .
Run Code Online (Sandbox Code Playgroud)

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

  • 哈!我已经使用pip多年了,并且不知道`pip install .`是可能的.:-) (11认同)
  • 对于那些下载并执行源代码安装并使用“ python setup.py install”以旧方式进行安装的人来说,这一点尤其重要,它通常会进行“ egg”安装。 (2认同)
  • `pip install .` 也适用于 Windows 10,并解决了我从 github 下载存储库并在安装到 `virtualenv` 中时将其放入 `.egg` 的问题 (2认同)

fre*_*eeo 15

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

pushd /path/to/my/package/ 
python setup.py sdist 
popd 
pip install /path/to/my/package/dist/package-1.0.tar.gz
Run Code Online (Sandbox Code Playgroud)

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

  • 这不涉及包含已编译二进制代码的包。我认为它并没有真正完全解决这里的问题。 (2认同)