Skip to content

Instantly share code, notes, and snippets.

@calmrat
Created July 16, 2014 12:12
Show Gist options
  • Save calmrat/71517b08536776399198 to your computer and use it in GitHub Desktop.
Save calmrat/71517b08536776399198 to your computer and use it in GitHub Desktop.
cd /tmp
cat > ./setup.py <<DELIM
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author: "Chris Ward" <[email protected]>
from setuptools import setup
default_setup = dict(
name='numpy_install_test',
description='https://github.com/numpy/numpy/issues/2434',
provides=['numpy_install_test'],
install_requires=['pandas'],
requires=['pandas'],
license='GPLv3',
author='Chris Ward',
author_email='[email protected]',
)
setup(**default_setup)
DELIM
virtualenv --no-site-packages ~/virtenvs/nonumpy
source ~/virtenvs/nonumpy/bin/activate
python setup.py install
@calmrat
Copy link
Author

calmrat commented Jul 16, 2014

output:

running install
running bdist_egg
running egg_info
writing requirements to numpy_install_test.egg-info/requires.txt
writing numpy_install_test.egg-info/PKG-INFO
writing top-level names to numpy_install_test.egg-info/top_level.txt
writing dependency_links to numpy_install_test.egg-info/dependency_links.txt
reading manifest file 'numpy_install_test.egg-info/SOURCES.txt'
writing manifest file 'numpy_install_test.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
warning: install_lib: 'build/lib' does not exist -- no Python modules to install

creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying numpy_install_test.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying numpy_install_test.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying numpy_install_test.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying numpy_install_test.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying numpy_install_test.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating 'dist/numpy_install_test-0.0.0-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing numpy_install_test-0.0.0-py2.7.egg
Copying numpy_install_test-0.0.0-py2.7.egg to /home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages
Adding numpy-install-test 0.0.0 to easy-install.pth file

Installed /home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/numpy_install_test-0.0.0-py2.7.egg
Processing dependencies for numpy-install-test==0.0.0
Searching for pandas
Reading https://pypi.python.org/simple/pandas/
Best match: pandas 0.14.1
Downloading https://pypi.python.org/packages/source/p/pandas/pandas-0.14.1.zip#md5=f634a6db924351328021fd28105da1d6
Processing pandas-0.14.1.zip
Writing /tmp/easy_install-KSRKPk/pandas-0.14.1/setup.cfg
Running pandas-0.14.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-KSRKPk/pandas-0.14.1/egg-dist-tmp-P2atv6
Searching for numpy>=1.6.1
Reading https://pypi.python.org/simple/numpy/
Best match: numpy 1.8.1
Downloading https://pypi.python.org/packages/source/n/numpy/numpy-1.8.1.zip#md5=b8b3a99d6ed0913543abb49911205e95
Processing numpy-1.8.1.zip
Writing /tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/setup.cfg
Running numpy-1.8.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/egg-dist-tmp-mE4r35
Running from numpy source directory.
Warning: distutils distribution has been initialized, it may be too late to add a subpackage commandWarning: distutils distribution has been initialized, it may be too late to add a subpackage fcompilernon-existing path in 'numpy/distutils': 'site.cfg'
Warning: distutils distribution has been initialized, it may be too late to add a subpackage distutilsWarning: distutils distribution has been initialized, it may be too late to add a subpackage testing/bin/sh: svnversion: command not found
Warning: distutils distribution has been initialized, it may be too late to add a subpackage f2pyWarning: distutils distribution has been initialized, it may be too late to add an extension _dummyWarning: distutils distribution has been initialized, it may be too late to add a library npysortWarning: distutils distribution has been initialized, it may be too late to add an extension multiarrayWarning: distutils distribution has been initialized, it may be too late to add an extension umathWarning: distutils distribution has been initialized, it may be too late to add an extension scalarmath/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/system_info.py:1521: UserWarning:
Atlas (http://math-atlas.sourceforge.net/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [atlas]) or by setting
the ATLAS environment variable.
warnings.warn(AtlasNotFoundError.doc)
/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/system_info.py:1530: UserWarning:
Blas (http://www.netlib.org/blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas]) or by setting
the BLAS environment variable.
warnings.warn(BlasNotFoundError.doc)
/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/system_info.py:1533: UserWarning:
Blas (http://www.netlib.org/blas/) sources not found.
Directories to search for the sources can be specified in the
numpy/distutils/site.cfg file (section [blas_src]) or by setting
the BLAS_SRC environment variable.
warnings.warn(BlasSrcNotFoundError.doc)
Warning: distutils distribution has been initialized, it may be too late to add an extension _dotblasWarning: distutils distribution has been initialized, it may be too late to add an extension umath_testsWarning: distutils distribution has been initialized, it may be too late to add an extension test_rationalWarning: distutils distribution has been initialized, it may be too late to add an extension struct_ufunc_testWarning: distutils distribution has been initialized, it may be too late to add an extension multiarray_testsWarning: distutils distribution has been initialized, it may be too late to add an extension operand_flag_tests/bin/sh: svnversion: command not found
Warning: distutils distribution has been initialized, it may be too late to add a subpackage coreWarning: distutils distribution has been initialized, it may be too late to add an extension _compiled_basenon-existing path in 'numpy/lib': 'benchmarks'
Warning: distutils distribution has been initialized, it may be too late to add a subpackage libWarning: distutils distribution has been initialized, it may be too late to add a subpackage oldnumericWarning: distutils distribution has been initialized, it may be too late to add an extension _capiWarning: distutils distribution has been initialized, it may be too late to add a subpackage numarrayWarning: distutils distribution has been initialized, it may be too late to add an extension fftpack_liteWarning: distutils distribution has been initialized, it may be too late to add a subpackage fft/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/system_info.py:1427: UserWarning:
Atlas (http://math-atlas.sourceforge.net/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [atlas]) or by setting
the ATLAS environment variable.
warnings.warn(AtlasNotFoundError.doc)
/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/system_info.py:1438: UserWarning:
Lapack (http://www.netlib.org/lapack/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [lapack]) or by setting
the LAPACK environment variable.
warnings.warn(LapackNotFoundError.doc)
/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/system_info.py:1441: UserWarning:
Lapack (http://www.netlib.org/lapack/) sources not found.
Directories to search for the sources can be specified in the
numpy/distutils/site.cfg file (section [lapack_src]) or by setting
the LAPACK_SRC environment variable.
warnings.warn(LapackSrcNotFoundError.doc)
Warning: distutils distribution has been initialized, it may be too late to add an extension lapack_liteWarning: distutils distribution has been initialized, it may be too late to add an extension _umath_linalgWarning: distutils distribution has been initialized, it may be too late to add a subpackage linalgWarning: distutils distribution has been initialized, it may be too late to add an extension mtrandWarning: distutils distribution has been initialized, it may be too late to add a subpackage randomWarning: distutils distribution has been initialized, it may be too late to add a subpackage maWarning: distutils distribution has been initialized, it may be too late to add a subpackage matrixlibWarning: distutils distribution has been initialized, it may be too late to add a subpackage compatWarning: distutils distribution has been initialized, it may be too late to add a subpackage polynomialWarning: distutils distribution has been initialized, it may be too late to add a subpackage docWarning: distutils distribution has been initialized, it may be too late to add a subpackage numpy_configtest.c:1:5: warning: conflicting types for built-in function ‘exp’ [enabled by default]
int exp (void);
^
_configtest.o: In function main': /tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/_configtest.c:6: undefined reference toexp'
collect2: error: ld returned 1 exit status
_configtest.o: In function main': /tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/_configtest.c:6: undefined reference toexp'
collect2: error: ld returned 1 exit status
_configtest.c:1:5: warning: conflicting types for built-in function ‘exp’ [enabled by default]
int exp (void);
^
_configtest.c:1:20: fatal error: Python.h: No such file or directory
#include <Python.h>
^
compilation terminated.
_configtest.c:1:20: fatal error: Python.h: No such file or directory
#include <Python.h>
^
compilation terminated.
Traceback (most recent call last):
File "setup.py", line 18, in
setup(**default_setup)
File "/usr/lib64/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/lib64/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/install.py", line 73, in run
self.do_egg_install()
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/install.py", line 101, in do_egg_install
cmd.run()
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 358, in run
self.easy_install(spec, not self.no_deps)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 574, in easy_install
return self.install_item(None, spec, tmpdir, deps, True)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 625, in install_item
self.process_distribution(spec, dist, deps)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 671, in process_distribution
[requirement], self.local_index, self.easy_install
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/pkg_resources.py", line 563, in resolve
dist = best[req.key] = env.best_match(req, self, installer)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/pkg_resources.py", line 801, in best_match
return self.obtain(req, installer) # try and download/install
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/pkg_resources.py", line 813, in obtain
return installer(requirement)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 593, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 623, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 809, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1015, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1000, in run_setup
run_setup(setup_script, args)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/sandbox.py", line 50, in run_setup
lambda: execfile(
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/sandbox.py", line 100, in run
return func()
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/sandbox.py", line 52, in
{'file':setup_script, 'name':'main'}
File "setup.py", line 606, in

File "/usr/lib64/python2.7/distutils/core.py", line 112, in setup
_setup_distribution = dist = klass(attrs)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/dist.py", line 239, in init
self.fetch_build_eggs(attrs.pop('setup_requires'))
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/dist.py", line 263, in fetch_build_eggs
parse_requirements(requires), installer=self.fetch_build_egg
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/pkg_resources.py", line 563, in resolve
dist = best[req.key] = env.best_match(req, self, installer)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/pkg_resources.py", line 801, in best_match
return self.obtain(req, installer) # try and download/install
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/pkg_resources.py", line 813, in obtain
return installer(requirement)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/dist.py", line 313, in fetch_build_egg
return cmd.easy_install(req)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 593, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 623, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 809, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1015, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1000, in run_setup
run_setup(setup_script, args)
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/sandbox.py", line 50, in run_setup
lambda: execfile(
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/sandbox.py", line 100, in run
return func()
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/sandbox.py", line 52, in
{'file':setup_script, 'name':'main'}
File "setup.py", line 239, in

File "setup.py", line 231, in setup_package

File "/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/core.py", line 169, in setup
File "/usr/lib64/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/lib64/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/home/metrique/virtenvs/nonumpy/lib/python2.7/site-packages/setuptools/command/bdist_egg.py", line 177, in run
self.run_command("egg_info")
File "/usr/lib64/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/command/egg_info.py", line 10, in run
File "/usr/lib64/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/command/build_src.py", line 153, in run
File "/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/command/build_src.py", line 170, in build_sources
File "/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/command/build_src.py", line 329, in build_extension_sources
File "/tmp/easy_install-KSRKPk/pandas-0.14.1/temp/easy_install-HPZBUo/numpy-1.8.1/numpy/distutils/command/build_src.py", line 386, in generate_sources
File "numpy/core/setup.py", line 428, in generate_config_h

File "numpy/core/setup.py", line 42, in check_types

File "numpy/core/setup.py", line 289, in check_types

SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.

@calmrat
Copy link
Author

calmrat commented Jul 16, 2014

But if i just do 'pip install pandas' manually, everything works. So this might be an issue with Pandas or setuptools... but the failure is only occuring when installing numpy as a dependency (of a dependency) through install_requires director, it seems.

@rgommers
Copy link

pip install pandas isn't quite the same dependency link, but putting this setup.py in a tmpdir and then doing pip install . works fine, so it's indeed a difference between setuptools and pip.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment