Wie wird Numpy1.5.1 von Python3.2 gefunden?

Probleme bei der Installation?
Antworten
Benutzeravatar
Goswin
User
Beiträge: 363
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

(PROBLEM GELÖST)

Vor einiger Zeit habe ich eine ähnliche Frage gestellt, nämlich "wie installiert man Numpy1.6.1 unter Ubuntu10.4", und den sicher guten Ratschlag erhalten, dass ich das als Linux-Laie lieber bleiben lasse, da Numpy1.6.1 kein Standardpaket von Ubuntu10.4 ist und nur fachmännisch installiert werden kann.

Nun ist aber einiges Wasser den Datenstrom hinuntergeflossen: ich habe mittlerweile Betriebssystem Ubuntu11.4, und ich habe die jetzt Standardpakete Python3.2 und Numpy1.5.1 beide heruntergeladen und installiert (behauptet jedenfalls die Synaptic-Paketverwaltung). Nur: Python3.2 findet Numpy nicht und behauptet steif und fest, das so ein Modul nicht existiert. Ich habe die Variable

Code: Alles auswählen

export PYTHONPATH=/usr/share/pyshared/numpy
gesetzt, aber das hat nicht geholfen. Ist der Pfad denn ein anderer oder ist mein Problem ein ganz anderes?

Vielen Dank für eure Hinweise!
Zuletzt geändert von Goswin am Montag 8. August 2011, 12:59, insgesamt 2-mal geändert.
lunar

@Goswin: python-numpy unterstützt Python 3 nicht, wie an den Abhängigkeiten des Pakets unschwer zu erkennen ist.
Benutzeravatar
Goswin
User
Beiträge: 363
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

@lunar: Ja sag einmal, werden wir denn alle von der offiziellen Numpy-Webseite auf den Arm genommen :cry: ?

Bei http://www.scipy.org/FAQ#head-288204f88 ... 554a4a970d steht
NumPy supports Python 3.1 and up. The first release to support Python 3 was NumPy 1.5.0.
und an vielen anderen Stellen wie http://projects.scipy.org/numpy/browser ... t?rev=8628 steht dasselbe!

Oder könnte es vielleicht nur sein, dass die Synaptic-Paketverwaltung von Ubuntu unfähig ist, das Modul so zu installieren, dass es auch von Python3 gefunden wird? Dann kann man vielleicht nachhelfen, indem man ein paar Pfade richtig setzt...
BlackJack

@Goswin: Ubuntu hat halt nur eines das für 2.7 kompiliert ist in den Paketquellen. Nur das eine Software grundsätzlich verfügbar ist, heisst ja nicht, dass es auch ein Paket für jede Linux-Distribution geben muss.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@Goswin: Sofern dir lunars Verweis auf die Abhängigkeiten von `python-numpy` nicht klar geworden ist, dann sei mal ein genauerer Blick auf diese Auflistung angeraten. Dort findet sich u.a. nämlich folgendes:
python (<< 2.8)
python (>= 2.6)
Das heißt, wenn ein installiertes Debian-Paket namens `python` in einer Version zwischen 2.6 - 2.7.x vorliegt, dann passt die Abhänigkeit - andernfalls nicht. Das Paket wird also in seiner jetzigen Form nicht mit Python 3.x funktionieren. Und bevor du da an irgendwelchen Pfaden rumdoktorst (und vermutlich eh keinen Erfolg haben wirst), so würde ich dir doch eher empfeheln, mal zu schauen, ob es irgendein PPA gibt, welches eine Numpy-Version für Python 3.x bereit stellt.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

NumPy fachmännisch selber zu kompilieren ist jetzt auch nicht so schwer. Einzig die Sache mit dem Fortran Compiler (--fcompiler=gnu95 mit Ubuntu) kann etwas irritierend sein. Folgende Schritte sollten eigentlich - eventuell habe ich irgendwelche Abhängigkeiten vergessen - zum Ziel führen:

Code: Alles auswählen

# Python 3, Compiler und Abhängigkeiten installieren
sudo apt-get install gcc gfortran python3.2 python3.2-dev libatlas-base-dev

# NumPy herunterladen und entpacken
wget http://sourceforge.net/projects/numpy/files/NumPy/1.6.1/numpy-1.6.1.tar.gz
tar -zxvf numpy-1.6.1.tar.gz

# ins NumPy Verzeichnis wechseln und dort installieren
cd numpy-1.6.1/
python3.2 setup.py build --fcompiler=gnu95
sudo python3.2 setup.py install
Grüße
Gerrit
Benutzeravatar
Goswin
User
Beiträge: 363
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

Hallo Gerrit,

Vielen Dank für deine Hinweise. Selbstverständlich habe ich deine sehr gut verständlichen Anweisungen sofort ausgetestet; so einen kostenlosen build-Kurs lasse ich mir nicht entgehen. Das Ganze sieht auch (zumindest in den ersten Schritten) ziemlich gut aus, nur bei

Code: Alles auswählen

python3.2 setup.py build --fcompiler=gnu95
erhalte ich die Fehlermeldung
Running from numpy source directory.Traceback (most recent call last):
File "setup.py", line 196, in <module>
setup_package()
File "setup.py", line 173, in setup_package
from numpy.distutils.core import setup
File "/home/hwpuschm/numpy-1.6.1/build/py3k/numpy/distutils/__init__.py", line 22, in <module>
import numpy.distutils.ccompiler
File "/home/hwpuschm/numpy-1.6.1/build/py3k/numpy/distutils/ccompiler.py", line 7, in <module>
from distutils.ccompiler import *
File "/usr/share/pyshared/numpy/distutils/__init__.py", line 23, in <module>
import numpy.distutils.unixccompiler
File "/home/hwpuschm/numpy-1.6.1/build/py3k/numpy/distutils/unixccompiler.py", line 7, in <module>
from distutils.errors import DistutilsExecError, CompileError
ImportError: No module named errors
Ich nehme einmal an, dass hier ein Modul namens "numpy.disutils" fehlt, aber ich weiß nicht, wo im Web das zu finden ist (das meiste, was ich gefunden habe, ist die Dokuseite "http://docs.scipy.org/doc/numpy/referen ... utils.html"). Weißt du da weiter?
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Das Modul "distutils.errors" befindet sich bei mir unter "/usr/lib/python3.2/distutils/errors.py" und ist Teil der Paketes "python3.2" von Ubuntu 11.04.
Benutzeravatar
Goswin
User
Beiträge: 363
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

:D gkuhl's Vorgangsweise funktioniert prima; kann ich nur empfehlen! :D

Alles in 6 Zeilen (siehe oben), kann jeder Dummy. Wichtig ist freilich, dass die Umgebungsvariable PYTHONPATH während der Installation deaktiviert wird, sonst kann das Build-Modul in die Irre geführt werden und sucht an den falschen Orten. Jetzt können bei mir sowohl python2.7 als auch python3.2 beide problemlos numpy1.6.1 importieren.

@lunar & snafu: Natürlich könnte es (rein theoretisch) Nebeneffekte geben, die ich bisher nicht bemerke. Falls ihr irgendeinen verborgenen Grund seht, um die obige manuelle Installation *nicht* zu benutzen, wäre ich interessiert, diesen zu kennen.

Mein Dank an Gerrit. :D
Antworten