Django Coverage ModuleNotFoundError: No module named 'django_extensions'

Django Coverage ModuleNotFoundError: No module named 'django_extensions'

我浏览了 SO 帖子,浏览了随机晦涩的博客,但似乎无法在这里解决我的问题。

这就是我处理这一切的方式:

我创建了一个全新的虚拟环境:

virtualenv venv

我安装了所有要求:

pip install -r requirements.txt

根据 LocalFlavor Documentation 我安装了 pip django-localflavor

但是当我尝试 运行 覆盖我的应用程序时 per the django docs:

coverage run --source='.' manage.py test visitor_check_in

我收到错误 'No module named 'localflavor'...

我安装的应用程序如下所示:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admindocs',
    'localflavor',
    'visitor_check_in',
    'django_extensions',
]

就在上周我有这个 运行ning,但我一定是在最近的一次会议上搞砸了,当时我 运行ning 通过一些教程或其他东西 - 但我在其他虚拟这些教程的环境 - 所以我很困惑。

如果我像这样移动我安装的应用程序的顺序:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admindocs',
    'visitor_check_in',
    'django_extensions',
    'localflavor',
]

它给我同样的未找到模块错误 - 除了它说找不到模块 django_extensions

追溯看起来像这样:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
    utility.execute()
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/management/__init__.py", line 337, in execute
    django.setup()
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/apps/config.py", line 94, in create
    module = import_module(entry)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 948, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'django_extensions'

正如我所说 - 以前,我对此没有任何问题,但现在对于我来说,我无法找出为什么这不起作用。我有一种下沉的感觉,有一些东西真的很简单我正在俯瞰,但我找不到它。

我可以确认我使用的是 Python 3.6pip

的最新版本

编辑添加:我可以使用 import localflavor

在 Python shell 中导入库

既然你提到它只在你 运行 coverage 时发生,它很可能会发生,因为 coverage 没有使用你的 virtualenv,而是你的全局 python 改为安装。

之前在这里发布过类似问题的问题 - Running coverage inside virtualenv

显然,您还需要在 virtualenv 中安装 coverage 才能正常工作。