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).

  • Erste Schritte, um das PyPI-Repository zu ignorieren
  • Wie kann ich den Build-Befehl unterteilen?
  • Das Ausführen von benutzerdefinierten Setups wird während der Installation erstellt
  • Richtigen Weg, um Skripts Verzeichnis von setup.py in Python distutils zu finden?
  • Python-2.7 auf Ubuntu installieren 10.4
  • Wie installiere ich Setuptools?
  • Erstellen Sie eine python-ausführbare Datei mit setuptools
  • Wie installiere ich setuptools für python 2.6 unter Windows?
  • Wie verwende ich Daten in package_data aus Quellcode?
  • Python - Paket, das mit easy_install installiert ist, wird nicht erkannt (PIL 1.1.7)
  • Setuptools nicht übergeben Argumente für entry_points
  • Python ist die beste Programmiersprache der Welt.