from file import func

VS Code. не могу импортнуть в файл функцию из другого своего файла. В Чем проблема?
from MyCalc import MyCalc.plus пробовала. Все равно ничего.
test_plus.py
import unittest
from MyCalc import plus
class TestPlus(unittest.TestCase):
def test_plus_1(self):
self.assertEqual(plus(5,-7.54445), -2.54, "Shouild be -2.54")
def test_plus_2(self):
self.assertEqual(plus(5,-6), -1, "Shouild be -1")
def test_plus_3(self):
self.assertEqual(plus(43, 57), 100, "Shouild be 100")
def test_plus_4(self):
self.assertEqual(plus(-333, -333), -666, "Shouild be -666")
if __name__ == '__main__':
unittest.main()
MyCalc.py
def plus(a, b):
return round(a + b, 2)
def minus(a, b):
return round(a - b, 2)
def division(a, b):
try:
return round(a / b, 2)
except ZeroDivisionError:
return "слыш щас тебя на ноль поделю подлец"
def multi(a, b):
return round(a * b, 2)
а вот директории:
Ответы (1 шт):
Обратите внимание на путь к файлам, о которых идет речь. Из всех возможных проблем, наиболее вероятная - местонахождение файла не находится в директории, откуда вызывается.
В данном случае есть решение: Переместить файл, который хотите импортировать в ту же директорию, где и файл, куда импортируете.
Второй вариант - более сложный - поместить файл(модуль) который хотите импортировать, в окружение PATH.
UPD! Посмотрите код ниже. Здесь я командой с помощью sys прописываю путь в PATH к папке(у меня основная рабочая папка для VSCode - VSCodeRepositories, в которой лежит папка (как модуль - stackoverflowtests) и в ней MyCalc.py.
Да, тест работает. Проблема в самом VSCode, необходимо покопаться в настройках и проверить с какими директориями он работает, поправить и он перестанет плевать ошибку импорта. Для примера PyCharm распознает папки как модули без проблем и ошибку не возвращает.
import unittest
import sys
sys.path.append("..\VSCodeRepositories")
from stackoverflowtests import MyCalc
class TestPlus(unittest.TestCase):
def test_plus_1(self):
self.assertEqual(MyCalc.plus(5,-7.54445), -2.54, "Shouild be -2.54")
def test_plus_2(self):
self.assertEqual(MyCalc.plus(5,-6), -1, "Shouild be -1")
def test_plus_3(self):
self.assertEqual(MyCalc.plus(43, 57), 100, "Shouild be 100")
def test_plus_4(self):
self.assertEqual(MyCalc.plus(-333, -333), -666, "Shouild be -666")
if __name__ == '__main__':
unittest.main()
