Ошибка: "ModuleNotFoundError: No module named 'termgame'"

Рейтинг: 0Ответов: 1Опубликовано: 09.02.2023

Я написал тесты для библиотеки termgame.

Структура проекта:

📁 TermGame  # Здесь я нахожусь при запуске тестов
  ...
  📁 termgame
    ...
  📁 tests
    📃 main.py
    📃 test_clock.py
    ...

Когда пытаюсь запустить их командой:

python3.10 tests/main.py

выходит ошибка:

Traceback (most recent call last):
  File "/mnt/e/nick/Python/TermGame/tests/main.py", line 1, in <module>
    from test_clock import ClockTestCase                        
  File "/mnt/e/nick/Python/TermGame/tests/test_clock.py", line 2, in <module>
    import termgame as tg
ModuleNotFoundError: No module named 'termgame'

Если нужно, вот кода.

tests/main.py:

from test_clock import ClockTestCase
from test_color import ColorTestCase
from test_draw import DrawTestCase
from test_events import EventsTestCase
from test_font import FontTestCase
from test_image import ImageTestCase
from test_screen import ScreenTestCase

import unittest

unittest.main()

tests/test_clock.py:

import termgame as tg

import time
import unittest


class ClockTestCase(unittest.TestCase):
    def setUp(self):
        self.testing_clock = tg.Clock()

    def test_tick(self):
        start = time.time()
        for _ in range(30):
            self.testing_clock.tick(30)
        finish = time.time()
        self.assertEqual(round(finish - start), 1)

    def test_get_fps(self):
        self.testing_clock.tick(30)
        self.assertEqual(self.testing_clock.get_fps(), 30.0)

Надеюсь все понятно, если нет пишите в комментариях.

Ответы

▲ 1Принят

В вашем случае только так.

import sys

sys.path.insert(0, "../termgame") # две точки означает подняться выше.
                                  # То есть как в проводнике кнопкой назад одно нажатие
import termgame

Вам вообще-то нужно почитать про иеархию поиска модулей или (sys.path в поисковик введите), посмотрите как допустим PyCharm делает проект.