2017-01-16 8 views
0

У меня есть скрипт для вычисления собственных значений и векторов без балансировки, которые я использовал почти ежедневно в течение многих лет, для чего требуется nag4py. Код находится в этом блоге: http://www.walkingrandomly.com/?p=5303, для которого есть связанная почта SO (How to use eig with the nobalance option as in MATLAB?).Ошибка импорта с nag4py: «невозможно импортировать имя INIT_FAIL»

Вчера я модернизировал nag4py и теперь я бегу в следующее сообщение об ошибке при выполнении такой же сценарий, который работает в течение многих лет:

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

ImportError: cannot import name INIT_FAIL

В то же время я решил эту проблему за счет импорта октаву, которая использует NO балансировка по умолчанию. Но я хотел бы решить проблему с nag4py.

Я протестировал лицензию NAG, и она действительна.

ответ

0

версия выпуск nag4py пакета использует 'quiet_fail' и 'noisy_fail', которые документированный во встроенном документ:

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.

Вот изменение:

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