二进制上传后,easy_install因错误"无法找到设置脚本"而失败?

Mic*_*ael 11 python binary easy-install python-c-extension

上传我的Python C扩展的二进制发行版后python setup.py bdist upload,easy_install [my-package-name]失败"错误:无法在/ tmp/easy_install/package-name-etc-etc中找到安装脚本".

我究竟做错了什么?

jar*_*mod 38

这可能与您的具体问题无关,但我提供此信息以防其他人有用.

我在运行'easy_install xyz'时遇到了这个错误.问题是我在当前工作目录中有一个名为'xyz'的子目录,easy_install希望在该子目录中找到本地安装脚本,而不是去网上获取真正的xyz.重命名我的本地xyz目录暂时解决了问题.

  • 您甚至不需要更改目录的名称.修复就像输入`cd ..`并从另一个cwd再次尝试easy_install一样简单.我建议在查看Martijn的答案之前对此进行测试,因为这是一个简单的问题. (9认同)

Mar*_*ers 8

easy_install希望找到源代码分发或者一个鸡蛋.最好将源代码分发(sdist)上传到PyPI(或者你正在使用的任何分发服务器),如果你的python软件包包含C扩展,那么只上传鸡蛋,然后只用于Windows鸡蛋(请参阅我的答案我可以创建一个鸡蛋吗?多个版本的python?).

bdist命令无需额外配置即可创建包含已编译的python文件(以及已编译的任何C扩展)的存档.tar.gz.zip存档,用于当前平台,无安装程序(因此不包括该setup.py文件).它旨在手动打包您的站点包装位置和通过鸡蛋分发前的日期.如果您要解压缩它,您会注意到它甚至包含了tarball中site-packages目录的完整绝对路径!

您可以配置bdist生成RPM或.deb文件或简单的Windows安装程序,但这些文件再次旨在为与PyPI和easy_install无关的其他分发系统提供安装包.

因此,总而言之,在大多数情况下,最好上传sdist源代码分发并让easy_install在安装时进行python编译(到一个鸡蛋).

如果您确实要上载预编译的发行版(然后将其绑定到特定的Python版本以及编译它的平台),请改用bdist_egg命令.