Numpy als Abhängigkeit mit Setuptools installieren

Dies könnte eine Folgefrage von diesem sein .

Ich verwende setuptools , um ein Paket von mir zu installieren. Als eine Abhängigkeit habe ich numpy aufgeführt. Ich benutze Python2.7 und wenn ich das mache

python setup.py install 

Mit dieser setup.py Datei:

 from setuptools import setup setup(name = "test_pack", install_requires = ["numpy"]) 

Ich komme mit dieser Fehlermeldung:

 ImportError: No module named numpy.distutils 

Was muss ich tun, um numpy als eine Abhängigkeit numpy und es zu installieren, ohne dass python-dev installiert ist?


Die komplette Ausgabe von python setup.py install :

 running install running bdist_egg running egg_info writing requirements to test_pack.egg-info/requires.txt writing test_pack.egg-info/PKG-INFO writing top-level names to test_pack.egg-info/top_level.txt writing dependency_links to test_pack.egg-info/dependency_links.txt reading manifest file 'test_pack.egg-info/SOURCES.txt' writing manifest file 'test_pack.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib creating build/bdist.linux-x86_64/egg creating build/bdist.linux-x86_64/egg/test_pack copying build/lib/test_pack/__init__.py -> build/bdist.linux-x86_64/egg/test_pack copying build/lib/test_pack/mod.py -> build/bdist.linux-x86_64/egg/test_pack byte-compiling build/bdist.linux-x86_64/egg/test_pack/__init__.py to __init__.pyc byte-compiling build/bdist.linux-x86_64/egg/test_pack/mod.py to mod.pyc creating build/bdist.linux-x86_64/egg/EGG-INFO copying test_pack.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO copying test_pack.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying test_pack.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying test_pack.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying test_pack.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO creating 'dist/test_pack-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 test_pack-0.0.0-py2.7.egg Copying test_pack-0.0.0-py2.7.egg to /home/woltan/local/lib/python2.7/site-packages Adding test-pack 0.0.0 to easy-install.pth file Installed /home/woltan/local/lib/python2.7/site-packages/test_pack-0.0.0-py2.7.egg Processing dependencies for test-pack==0.0.0 Searching for numpy Reading http://pypi.python.org/simple/numpy/ Reading http://numpy.scipy.org Reading http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=175103 Reading http://numeric.scipy.org Best match: numpy 1.6.1 Downloading http://pypi.python.org/packages/source/n/numpy/numpy-1.6.1.zip#md5=462c22b8eb221c78ddd51de98fbb5979 Processing numpy-1.6.1.zip Running numpy-1.6.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-AoFmdV/numpy-1.6.1/egg-dist-tmp-JH1j2R non-existing path in 'numpy/distutils': 'site.cfg' Could not locate executable g77 Found executable /opt/solstudio12.2/bin/f77 gnu: no Fortran 90 compiler found gnu: no Fortran 90 compiler found Found executable /opt/intel/Compiler/11.1/073/bin/intel64/ifort Could not locate executable lf95 Could not locate executable pgf90 Could not locate executable pgf77 Found executable /opt/solstudio12.2/bin/f90 Found executable /opt/solstudio12.2/bin/f95 Could not locate executable fort _configtest.c:1: warning: conflicting types for built-in function 'exp' _configtest.o: In function `main': /tmp/easy_install-AoFmdV/numpy-1.6.1/_configtest.c:6: undefined reference to `exp' collect2: ld returned 1 exit status _configtest.c:1: warning: conflicting types for built-in function 'exp' _configtest.c:1:20: error: Python.h: No such file or directory _configtest.o: In function `main': /tmp/easy_install-AoFmdV/numpy-1.6.1/_configtest.c:6: undefined reference to `exp' collect2: ld returned 1 exit status _configtest.c:1:20: error: Python.h: No such file or directory 

3 Solutions collect form web for “Numpy als Abhängigkeit mit Setuptools installieren”

Dies ist ein bekanntes Problem, auf numpy/numpy #2434 .

Ich habe einen Workaround dafür gefunden: numpy zu setup_requires hinzufügen. Wenn man es sowohl in setup_requires als auch install_requires scheint es mit der neuesten Version von setuptools .

Also, dein setup.py sollte so aussehen

 setup( # Your setup specific stuff here setup_requires=["numpy"], # Just numpy here install_requires=["numpy"], # Add any of your other dependencies here ) 

Es sei denn, du hast Zugriff auf eine binäre Verteilung (vorkompiliert / gebaut) für numpy, du musst die Python-Header zur Verfügung haben, wie es braucht, um numpy zu bauen. Aus diesem Grund kommen die meisten Paketmanager mit vorkompilierten Versionen dieser Pakete. Zum Beispiel können Sie apt-get install python-numpy , Link, dass in Ihrem virtualenv, und wenn Sie versuchen, Ihr Programm mit install_requires=['numpy'] installieren, sollte es sehen, dass es bereits installiert ist.

Zur Installation numpy die setuptools laden das Paket herunter und kompilieren es von der Quelle. Allerdings gibt es einige Voraussetzungen zu numpy , können Sie es hier überprüfen.

 _configtest.c:1:20: error: Python.h: No such file or directory 

Dieser Fehler zeigt an, dass Sie zumindest kein python-dev-Paket installiert haben (wenn Sie Ubuntu / Debian verwenden).

  • Python: Wie man eine Verbindung zu einem geschützten svn-Repository mit setuptools herstellt
  • Wie installiere ich Setuptools?
  • Verpackung virtualenv mit setup.py
  • Füge Python-Argumente in der Shebang-Zeile des Skripts hinzu (Skript mit Buildout und zc.recipe.egg: scripts)
  • Pip ignoriert dependency_links in setup.py
  • Python setuptools install_requires wird beim Überschreiben von cmdclass ignoriert
  • Kann ein Python-Paket von einer bestimmten Versionskontrolle revision eines anderen Python-Pakets abhängen?
  • Wie kann ich setuptools verwenden, um einen console_scripts Einstiegspunkt zu erzeugen, der `python -m mypackage` aufruft?
  • Warum ist eine Ei-Info-Datei erstellt, wenn ich distutils verwende?
  • Python ez_install: UnicodeDecodeError: 'ascii' codec kann das Byte 0xae nicht in Position 11 decodieren
  • Paket nur Binär kompiliert. So Dateien einer Python-Bibliothek mit Cython kompiliert
  • Python ist die beste Programmiersprache der Welt.