Django Coverage ModuleNotFoundError:没有名为“django_extensions”的模块

Han*_*nny 3 python django code-coverage coverage.py python-3.x

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

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

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

virtualenv venv

我安装了所有要求:

pip install -r requirements.txt

根据我安装的LocalFlavor 文档django-localflavor

但是当我尝试根据 django 文档对我的应用程序进行覆盖时:

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',
]
Run Code Online (Sandbox Code Playgroud)

就在上周,我运行了这个,但我最近在一次会议上正在运行一些教程或其他东西时一定是搞砸了 - 但我在其他虚拟环境中学习这些教程 - 所以我很难过。

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

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',
]
Run Code Online (Sandbox Code Playgroud)

它给了我同样的 no module found 错误 - 除了它说它找不到模块 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'
Run Code Online (Sandbox Code Playgroud)

正如我所说 - 以前,我对此没有任何问题,但现在对于我的生活,我无法弄清楚为什么这不起作用。我有一种下沉的感觉,我忽略了一些非常简单的东西,但我找不到它。

我可以确认我正在使用Python 3.6最新版本的pip

编辑添加:我可以在 Python shell 中导入库 import localflavor

xyr*_*res 6

由于您提到它仅在您运行时发生,coverage因此很可能发生这种情况,因为coverage不是使用您的 virtualenv,而是使用您的全局 python 安装。

之前已经在这里发布了一个类似问题的问题 -在 virtualenv 中运行覆盖

显然,您还需要coverage在您的 virtualenv 中安装它才能按预期工作。