ImportError: нет модуля с именем pandas при использовании pytest - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть проект со следующей структурой:

.
├── Pipfile
├── Pipfile.lock
├── rules
│   ├── __init__.py
│   ├── budget.py
│   └── tests
│       ├── __init__.py
│       └── budget_test.py

Очевидно, budget_test.py тестирует модуль budget.py.

from .. import budget

class TestBudget:
...

и запускается budget.py с помощью:

import pandas as pd

Когда я запускаю модуль вручную, импорт выполняется нормально. Когда я запускаю pytest, я получаю ImportError о pandas:

ImportError: Нет модуля с именем pandas

En, хотя virtualenv активирован и pandas является частью установленных пакетов:

pip freeze

... pandas == 1.0.1 ...

По какой-то причине pytest не может найти установленные пакеты в виртуальной среде?

Удивительно, но запуск pytest завершается неудачно, когда python -m pytest успешен

1 Ответ

1 голос
/ 13 февраля 2020

Обычная практика - использовать python -m pytest, чтобы найти все модули в текущей среде. Чтобы быть немного более точным c - это необходимо, чтобы найти модули внутри пакетов .

Подробнее об объяснении и поведении ключа -m можно узнать в соответствующем PEP -338 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...