2017-01-16 3 views
0

Ich habe ein Skript zur Berechnung von Eigenwerten und Vektoren ohne Balancing, das ich fast täglich seit Jahren verwende, was nag4py erfordert. Der Code ist in diesem Blog: http://www.walkingrandomly.com/?p=5303, für die es eine zugehörige SO-Post (How to use eig with the nobalance option as in MATLAB?) gibt.Importfehler mit nag4py: "Name kann nicht importiert werden INIT_FAIL"

Gestern habe ich ein Upgrade nag4py und jetzt laufe ich in die folgende Fehlermeldung, wenn das gleiche Skript ausgeführt wird, die jahrelang gearbeitet hat:

from nag4py.util import Nag_RowMajor,Nag_NoBalancing,Nag_NotLeftVecs,Nag_RightVecs,Nag_RCondEigVecs,Integer,NagError,INIT_FAIL

ImportError: cannot import name INIT_FAIL

In der Zwischenzeit habe ich das Problem durch den Import Oktave gelöst, die die nicht verwendet Ausgleichsoption standardmäßig. Aber ich möchte das Problem mit Nag4py lösen.

Ich habe die NAG-Lizenz getestet und sie ist gültig.

Antwort

0

Die Release-Version des nag4py Paket verwendet 'quiet_fail' und 'noisy_fail', die in der Embedded-doc dokumentiert sind:

Error or warning cases detected by the NAG C Library are handled in nag4py using a similar NagError mechanism as in the Library itself. The nag4py util module provides two convenience functions ('quiet_fail' and 'noisy_fail') to create a NagError instance with printing of messages disabled or enabled, respectively.

Hier ist die Änderung:

Index: nag4py/util.py 
=================================================================== 
--- nag4py/util.py (revision 104707) 
+++ nag4py/util.py (revision 104708) 
@@ -4736,14 +4736,20 @@ 
    return _arg 


-def INIT_FAIL(fail): 
+def quiet_fail(): 
+ "Returns a NagError instance with printing disabled." 
+ fail = NagError() 
    fail.eprint = Nag_FALSE 
+ return fail 

-def SET_FAIL(fail): 
+def noisy_fail(): 
+ "Returns a NagError instance with printing enabled." 
+ fail = NagError() 
    fail.eprint = Nag_TRUE 
+ return fail 

-__all__.append("INIT_FAIL") 
-__all__.append("SET_FAIL") 
+__all__.append("quiet_fail") 
+__all__.append("noisy_fail") 

def get_input_func(): 
    from sys import version_info 
Verwandte Themen