Seite 1 von 1

sys.path manipulieren in Abqus, scipy, numpy

Verfasst: Sonntag 30. Juni 2013, 14:32
von Jeremy
Hallo Forum,

ich arbeite mit Abaqus (FEM-Software) und möchte dort mit scipy (Version 0.12.0) arbeiten. Dazu brauche ich allerdings mindestens numpy-1.5.0, Abaqus stellt aber nur numpy-1.4.0 bereit.
Jetzt war meinen Idee: ich füge wie in der Python-Shell über

Code: Alles auswählen

from sys import path
ein neues Verzeichnis hinzu, in welchem zusätzlich nach den beiden Bibliotheken numpy und scipy gesucht wird und zwar so , dass numpy-1.5.0 zuerst gefunden wird. Denn ich möchte nur in diesem Script mit numpy-1.5.0 arbeiten.
In der Python Shell außerhalb Abaqus funktioniert das auch einwandfrei, nur wenn ich in Abaqus nach dem gleichen Schema vorgehe, kann ich die Variable path zwar manipulieren, aber es wirkt sich nicht auf die import-Anweisung aus, d.h. mit

Code: Alles auswählen

import numpy 
wird stets die Version 1.4.0 geladen.
Hat jemand eine Idee warum das so ist?

Gruß
Jeremy

Betriebssystem: Win 7 64bit

Re: sys.path manipulieren in Abqus, scipy, numpy

Verfasst: Sonntag 30. Juni 2013, 14:45
von BlackJack
@Jeremy: Vielleicht liegt das falsche `numpy` vor dem richtigen in der Liste oder vielleicht wurde das schon importiert bevor Dein Skript überhaupt läuft. Letzteres könnte man Beispielsweise so feststellen:

Code: Alles auswählen

import sys
print 'numpy' in sys.modules

Re: sys.path manipulieren in Abqus, scipy, numpy

Verfasst: Sonntag 30. Juni 2013, 18:39
von Jeremy
Hallo BlackJack,

als Antowrt bekomme ich "TRUE", was wohl bedeutet, das numpy bereits importiert ist. Allerdings kann ich keine Funktionen von numpy nutzen, solange ich nicht mit

Code: Alles auswählen

import numpy
importiert habe.
Kann ich irgendie ermitteln ob numpy unter einer anderen Benennung importiert wurde?
Mit sys.modules bekomme ich alle geladenen Modules angezeigt?

Gruß
Jeremy

Re: sys.path manipulieren in Abqus, scipy, numpy

Verfasst: Sonntag 30. Juni 2013, 19:40
von BlackJack
@Jeremy: Wenn man etwas importiert dann ist das ja nicht automatisch in jedem Modul verfügbar. Das wäre auch ziemlich ungünstig.

Das bedeutet für Dich jetzt, das Abqus dieses Modul importiert bevor Dein Skript gestartet wird. Da wirst Du also mit der mitgelieferten Version zurecht kommen müssen.

Re: sys.path manipulieren in Abqus, scipy, numpy

Verfasst: Sonntag 30. Juni 2013, 20:35
von Jeremy
@BlackJack: Für Abaqus gibt es folglich irgendwo eine Datei die regelt, welche Module schon beim Start importiert werden. Mit relaod(numpy) und vorherigem Ändern der Variablen sys.path hat es auch nicht funktionert. Es bleibt immer bei der Verion numpy-1.4.0.
Dann werde ich meine Berechnungen wohl außerhalb abaqus machen müssen und deren Endergebnis mit Hilfe von txt-Dateien speichern und dann in Abaqus wieder einlesen.
Dank für die Hinweise.