[Distutils] Setup script exited with error: build/ * /egg/EGG-INFO/zip-safe: No such file or directory

Nicolas Dumazet nicdumz at gmail.com
Mon Aug 24 23:09:22 CEST 2009


Hello!

I am the maintainer of a small C extension, and after uploading it to
pypi, out of curiosity, I tried installing it using easy_install.

The error that easy_install returns is however quite cryptic, and I
have no idea of what is happening:

$ easy_install -v -n --install-dir /Users/junk/py-lib pyfsevents
Checking existing site.py in /Users/junk/py-lib
Searching for pyfsevents
Reading http://pypi.python.org/simple/pyfsevents/
Reading http://bitbucket.org/nicdumz/fsevents/
Found link: http://pypi.python.org/packages/source/p/pyfsevents/pyfsevents-0.1.tar.gz#md5=edadbf0670ff96077fc05196817084e3
Best match: pyfsevents 0.1
Downloading http://pypi.python.org/packages/source/p/pyfsevents/pyfsevents-0.1.tar.gz#md5=edadbf0670ff96077fc05196817084e3
Validating md5 checksum for /tmp/easy_install-NGokgY/pyfsevents-0.1.tar.gz
Processing pyfsevents-0.1.tar.gz
Unpacking pyfsevents-0.1// to /tmp/easy_install-NGokgY/pyfsevents-0.1/
Unpacking pyfsevents-0.1/BUGS to /tmp/easy_install-NGokgY/pyfsevents-0.1/BUGS
Unpacking pyfsevents-0.1/examples// to
/tmp/easy_install-NGokgY/pyfsevents-0.1/examples/
Unpacking pyfsevents-0.1/examples/proofofconcept.py to
/tmp/easy_install-NGokgY/pyfsevents-0.1/examples/proofofconcept.py
Unpacking pyfsevents-0.1/examples/testwatcher.py to
/tmp/easy_install-NGokgY/pyfsevents-0.1/examples/testwatcher.py
Unpacking pyfsevents-0.1/examples/watcher.py to
/tmp/easy_install-NGokgY/pyfsevents-0.1/examples/watcher.py
Unpacking pyfsevents-0.1/examples/watcher.pyc to
/tmp/easy_install-NGokgY/pyfsevents-0.1/examples/watcher.pyc
Unpacking pyfsevents-0.1/INSTALL to
/tmp/easy_install-NGokgY/pyfsevents-0.1/INSTALL
Unpacking pyfsevents-0.1/LICENSE to
/tmp/easy_install-NGokgY/pyfsevents-0.1/LICENSE
Unpacking pyfsevents-0.1/PKG-INFO to
/tmp/easy_install-NGokgY/pyfsevents-0.1/PKG-INFO
Unpacking pyfsevents-0.1/pyfsevents.c to
/tmp/easy_install-NGokgY/pyfsevents-0.1/pyfsevents.c
Unpacking pyfsevents-0.1/README to
/tmp/easy_install-NGokgY/pyfsevents-0.1/README
Unpacking pyfsevents-0.1/readme.rst to
/tmp/easy_install-NGokgY/pyfsevents-0.1/readme.rst
Unpacking pyfsevents-0.1/setup.py to
/tmp/easy_install-NGokgY/pyfsevents-0.1/setup.py
Running pyfsevents-0.1/setup.py -n bdist_egg --dist-dir
/tmp/easy_install-NGokgY/pyfsevents-0.1/egg-dist-tmp-3dV2pZ
running bdist_egg
running egg_info
creating pyfsevents.egg-info
writing pyfsevents.egg-info/PKG-INFO
writing top-level names to pyfsevents.egg-info/top_level.txt
writing dependency_links to pyfsevents.egg-info/dependency_links.txt
writing manifest file 'pyfsevents.egg-info/SOURCES.txt'
writing manifest file 'pyfsevents.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.5-i386/egg
running install_lib
running build_ext
building 'pyfsevents' extension
creating build
creating build/temp.macosx-10.5-i386-2.5
gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp
-mno-fused-madd -fno-common -dynamic -DNDEBUG -g -Os -Wall
-Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch
i386 -arch ppc -pipe
-I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5
-c pyfsevents.c -o build/temp.macosx-10.5-i386-2.5/pyfsevents.o
creating build/lib.macosx-10.5-i386-2.5
gcc -Wl,-F. -bundle -undefined dynamic_lookup -arch i386 -arch ppc
build/temp.macosx-10.5-i386-2.5/pyfsevents.o -o
build/lib.macosx-10.5-i386-2.5/pyfsevents.so -framework CoreFoundation
-framework CoreServices
creating build/bdist.macosx-10.5-i386
creating build/bdist.macosx-10.5-i386/egg
creating build/bdist.macosx-10.5-i386/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
error: Setup script exited with error:
build/bdist.macosx-10.5-i386/egg/EGG-INFO/zip-safe: No such file or
directory

Do we have a bug? Or simply a badly worded message?

Note that I did not expect easy_install to work out of the box without
configuration on my end, I am just surprised by the opaque error.

Troubleshooting the issue seems quite difficult. Even with
--build-directory , that build/bdist* repertory is not kept after the
error. Maybe -k should be passed to setup.py when -b is passed to
easy_install?

Thanks,
-- 
Nicolas Dumazet — NicDumZ


More information about the Distutils-SIG mailing list