Я довольно плохо знаком с Python и использую исключительно ноутбуки Jupyter.Когда мне нужно запустить файл .py, который я сохранил где-то на своем компьютере, я обычно использую волшебную команду% run
%run '/home/cody/.../Chapter 3/efld.py'
%run '/home/cody/.../Chapter 5/tan_vec.py'
Затем в следующей ячейке я могу запустить efld.py безпроблема.Но tan_vec.py использует efld.py и выглядит следующим образом:
def tan_vec(r):
import numpy as np
#Finds the tangent vector to the electric field at point 'r'
e = efld(r)
e = np.array(e) #Turn 'e' into a numpy array so I can do math with it a little easier.
emag = np.sqrt(sum(e**2)) #Magnitude of the
return e / emag
, когда я пытаюсь запустить, я получаю сообщение об ошибке;
"NameError: name 'efld' is not defined."
Я пытался большинство вещей здесь но ни один из них не сработал.
Я неправильно запустил py-файлы в блокноте?Есть ли лучший способ запустить / вызвать Py файлы в записной книжке?Как сделать так, чтобы я мог запустить один файл py внутри другого файла?
РЕДАКТИРОВАТЬ
Спасибо всем за помощь!Я просто хотел добавить окончательный код, который работал, если кто-то сталкивается с этим позже и хочет посмотреть, что я сделал.
def tan_vec(r):
#import sys
#sys.path.insert(0, '/home/cody/Physics 331/Textbook Programs/Chapter 3')
from efld import efld
import numpy as np
#Finds the tangent vector to the electric field at point 'r'
e = efld(r)
e = np.array(e) #Turn 'e' into a numpy array so I can do math with it a little easier.
emag = np.sqrt(sum(e**2)) #Magnitude of the
return e / emag
Первые две строки закомментированы, поскольку они были нужны только в том случае, если файлы efld.py и tan_vec.py сохранены в разных папках.Я просто добавил копию efld в ту же папку и tan_vec, и они мне больше не нужны.
Еще раз спасибо за помощь!