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 шт):

Автор решения: Exploit89

Обратите внимание на путь к файлам, о которых идет речь. Из всех возможных проблем, наиболее вероятная - местонахождение файла не находится в директории, откуда вызывается.

В данном случае есть решение: Переместить файл, который хотите импортировать в ту же директорию, где и файл, куда импортируете.

Второй вариант - более сложный - поместить файл(модуль) который хотите импортировать, в окружение 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()
→ Ссылка