Numpy-Installation scheitert

Probleme bei der Installation?
BlackJack

Mittwoch 9. Mai 2007, 13:24

Wenn Du am ganz normalen Python-Prompt dieses Modul nicht importieren kannst, dann stimmt etwas mit der '*.pyd'-Datei nicht. Installiere doch einfach nochmal neu.

Ich würde auf jeden Fall erst einmal das Programm mit `Numeric` zum laufen bringen. Nur dann hast Du Vergleichsmöglichkeiten und kannst beim anpassen an `numpy` prüfen ob sich die alte Version gleich verhält.
mod_che
User
Beiträge: 46
Registriert: Freitag 13. April 2007, 16:58
Kontaktdaten:

Mittwoch 9. Mai 2007, 14:19

Ich habe Python 2.4 und dafür nun schon einige Male Numeric neuinstalliert, weil ich mir ähnliches auch schon dachte. Es funktioniert danach aber auch nicht. Vom prompt kann ich doch sowieso keine pyd-Datei importieren, oder?

Code: Alles auswählen

from Numeric import multiarray
funktioniert auf jeden Fall nicht. So lange ich diesen Punkt nicht aufgelöst habe, lasse ich auch die Finger erstmal von Umstellung auf numpy, macht ja keinen Sinn.

Mein Verdacht geht in eine andere Richtung: Irgendwer sagte doch, dass multiarray was mit C zu tun hat. Meine EXE kommt aus C++ und stellt in der 4er-Version eine Art Debugmodus für das Programm dar, in der 5er Version so zusagen die Releaseversion.
So. Bei der 5er Version stolpert die EXE, wenn sie die ganzen Pythondateien ruft, nicht. In der 4er Version hingegen kommt der "multiarray"-Fehler... Daher habe ich überlegt, ob man der EXE vorm Compilieren in Visual Studio vielleicht noch irgendetwas in der Art von "import multiarrays" mitgeben kann. Unterschiede zuer 5er-Version der EXE diesbezüglich kann ich leider nicht finden.

Viele Grüße
Python rockt.
BlackJack

Mittwoch 9. Mai 2007, 14:45

Wie jetzt? Aus einem Deiner C++-Programme funktioniert der Aufruf aber vom Python-Prompt aus nicht!?

`*.pyd`-Dateien sind Module die in C geschrieben sind. Die lassen sich von Python aus importieren. Wären ja sonst ziemlich nutzlos. Also Dein ``import`` im letzten Beitrag muss auf jeden Fall funktionieren:

Code: Alles auswählen

In [74]: from Numeric import multiarray

In [75]: multiarray.arange(5)
Out[75]: array([0, 1, 2, 3, 4])
Wie installierst Du `Numeric` denn? Und passt die `Numeric`-Version zum Python-Interpreter? Verwenden Deine beiden C++-EXEn den selben Interpreter?
mod_che
User
Beiträge: 46
Registriert: Freitag 13. April 2007, 16:58
Kontaktdaten:

Mittwoch 9. Mai 2007, 15:06

1) Deine Importanweisung kann ich im Pythoninterpreter ausführen.
from Numeric import multiarray
Ich habe übrigens Python 2.4 und Numeric auch für Python 2.4 - hab ich nachgesehen.

2) Es wird mir bei der einen EXE Datei eben gemeldet:

Code: Alles auswählen

Import can't find module, or can't find name in module.
No module named multiarray
 line 20 in ? in file F:\......\gw.py
 line 91 in ? in file ....\Python24\lib\site-packages\Numeric\Numeric.py
3) Numeric ist in gw.py mit

Code: Alles auswählen

from Numeric import * 
installiert[/code]
Python rockt.
BlackJack

Mittwoch 9. Mai 2007, 15:36

Dann liegt das Problem bei der EXE aus 2). Benutzt die vielleicht eine andere Pythonversion aber trotzdem das Library-Verzeichnis der 2.4 weil irgendwelche Umgebungsvariablen darauf verweisen?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 9. Mai 2007, 15:45

mod_che hat geschrieben:3) Numeric ist in gw.py mit

Code: Alles auswählen

from Numeric import * 
installiert
Nein, so zeigst du, wie du es importierst. BlackJack fragte aber wie du es installiert hast.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mod_che
User
Beiträge: 46
Registriert: Freitag 13. April 2007, 16:58
Kontaktdaten:

Donnerstag 10. Mai 2007, 12:14

Hi,
es hat sich einiges getan, daher mal auch Infos meinerseits:

Ich habe es für die Releaseversion nun geschafft anstatt Numeric nun numpy zu benutzen, dafür muss ich diese Anweisungen einfügen:

Code: Alles auswählen

    from numpy import *
    from numpy import array
    import numpy as Numeric
    import numpy as numpy
    Numeric.Int = Numeric.int32
    Numeric.Float = Numeric.float64
Nun kann ich Befehle wie
Numeric.array
oder
Numeric.zeros
benutzen.

Zur Installationsfrage: numpy und auch Numeric habe/hatte ich via Windowsinstaller *.msi installiert. Natürlich immer in der für Python 2.4 gedachten Variante.

Der Hinweis mit den Umgebungsvariablen ist gar nicht schelcht. Ich hatte da mal ein Problem und haben dann aber konsequent alle alten Python-DLLs (wie python23.dll) rausgeworfen (aus allen PATH-Verzeichnissen).

Natürlich besteht ja jetzt auch die relaistische Chance, dass die Debug-EXE nicht mehr meckert, wenn ich numpy benutze und nicht Numeric. Mal sehen...

Vielen Dank weiterhin für die Geduld, mittlerweile dürfte dieser Thread viele Infomationen für andere beinhalten, ist ja auch nicht übel.... Grüße[/code]
Python rockt.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Freitag 25. Mai 2007, 07:49

Hoi,

habe ich ja noch gar nicht gesehn, diesen Post ...

Nochmal ein Kommentar zum Code:
mod_che hat geschrieben:

Code: Alles auswählen

    from numpy import *
    from numpy import array
    import numpy as Numeric
    import numpy as numpy
    Numeric.Int = Numeric.int32
    Numeric.Float = Numeric.float64
Das ist nicht sinnvoll. Für eine gewisse Zeit der Überbrückung kann man Numeric so maskieren, damit die Programme wieder laufen. Ansonsten sollte man sich schon die Arbeit machen voll zu numpy zu migrieren, weil nur so dauerhafte Stabilität gewährleistet sein wird. Dazu gibt es mit numpy Skripte und auch Hilfe auf der Mailingliste.

Außerdem ist der *-Import nicht so dolle. Muß man das hier noch begründen? (=> Forensuche ;-) )

Aber ich will auch nicht inquisitorisch sein. Manchmal ist ja die Hauptsache, daß die Dinge wieder funktionieren. Glückwunsch!!!

Gruß,
Christian
Antworten