Форум сайта python.su
0
Здравствуйте, господа.
Увы, в авральном режиме приходится переписывать программу с MatLab'а на Python, который вижу впервые в жизни (как и ООП вообще - прошлый опыт - pascal,fortran,matlab).
В программе присутствует некоторое число математических функций, работающих с матрицами.
Дабы не городить их в основной программе, решил создать модуль с всеми функциями.
Все функции производят операции с использованием пакета NumPy.
Вопрос в том, как правильно его подгружать в программу?
В обоих случаях(импорт только в основной модуль, и импорт и в основной, и в функциональный модули) возникает ошибка:
NameError: global name 'numpy' is not defined
Отредактировано risele (Окт. 18, 2012 01:04:57)
Офлайн
221
Каким образом вы устанавливали numpy?
Офлайн
0
С официального сайта скачал инсталлер (по ссылке на неофицальные - система win64), закинул в папку с Python'ом и запустил. Никаких изменений в процесс установки не вводил.
В отдельном модуле numpy вполне себе работает.
Офлайн
72
Покажите весь трейс исключения. Судя по ошибке дело не в импорте.
Офлайн
0
Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> T=CavityFunctions.CavityElement(R,E,ind,wave,nr,Diaf) File "H:\Save\Учебное\УИР и прочее\Python\CavityFunctions.py", line 3, in CavityElement T1=numpy.matrix([[1,0],[-2/Elem[ind-1],1]]) NameError: global name 'numpy' is not defined
Офлайн
253
risele1 Не есть гуд. Огребете сложности во многих местах в которых иначе их вообще не былобы
\Учебное\УИР и прочее\
Отредактировано doza_and (Окт. 18, 2012 20:05:39)
Офлайн
0
doza_andrisele1 Не есть гуд. Огребете сложности во многих местах в которых иначе их вообще не былобы
\Учебное\УИР и прочее\
2 Код пожалуйста приведите который дает такой трейс (CavityFunctions.py).
import numpy
def CavityElement(Cav,Elem,ind,wave,nr,DiafNum): if Cav[ind-1]=='M': T1=numpy.matrix([[1,0],[-2/Elem[ind-1],1]]) elif Cav[ind-1]=='L': T1=numpy.matrix([[1,0],[-1/Elem[ind-1],1]]) elif Cav[ind-1]=='S': T1=numpy.matrix([[1,Elem[ind-1]],[0,1]]) elif Cav[ind-1]=='R': T1=numpy.matrix([[1,Elem[ind-1]/nr],[0,1]]) elif Cav[ind-1]=='A': t=2j*wave/(numpy.pi*DiafNum*(Elem[ind-1])**2) T1=numpy.matrix([[1,0],[t,1]]) T=T1 return(T)
Офлайн
253
riseleдело ваше.
в начале строки, но оно ничего не меняет:
import numpy def CavityElement(Cav,Elem,ind,wave,nr,DiafNum): if Cav[ind-1]=='M': T1=numpy.matrix([[1,0],[-2/Elem[ind-1],1]]) elif Cav[ind-1]=='L': T1=numpy.matrix([[1,0],[-1/Elem[ind-1],1]]) elif Cav[ind-1]=='S': T1=numpy.matrix([[1,Elem[ind-1]],[0,1]]) elif Cav[ind-1]=='R': T1=numpy.matrix([[1,Elem[ind-1]/nr],[0,1]]) elif Cav[ind-1]=='A': t=2j*wave/(numpy.pi*DiafNum*(Elem[ind-1])**2) T1=numpy.matrix([[1,0],[t,1]]) T=T1 return(T) print "ok" >>> ok
Отредактировано doza_and (Окт. 18, 2012 20:14:34)
Офлайн
0
doza_andPython установлен D:\Programms\Python
Дело в установке питона
Я думаю что вполне может быть потому что вы поставили его в папку H:\Save\Учебное\УИР и прочее
Ща посмотрим
Traceback (most recent call last): File "<pyshell#18>", line 1, in <module> T=CavityFunctions.CavityElement(R,E,ind,wave,nr,Diaf) File "CavityFunctions.py", line 3, in CavityElement if Cav[ind-1]=='M': NameError: global name 'numpy' is not defined
Отредактировано risele (Окт. 18, 2012 20:25:20)
Офлайн
14
risele, запусти питон и набери в интерпретаторе import numpy.
Офлайн