我浏览了 SO 帖子,浏览了随机晦涩的博客,但我似乎无法在这里解决我的问题。
这就是我处理这一切的方式:
我创建了一个全新的虚拟环境:
virtualenv venv
我安装了所有要求:
pip install -r requirements.txt
根据 LocalFlavor Documentation我 pip 安装了 django-localflavor
但是当我尝试对我的应用程序运行覆盖时 per the django docs :
覆盖运行 --source='.' manage.py 测试 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',
]
就在上周,我运行了这个程序,但我一定是在最近的一次 session 上搞砸了一些教程或其他东西——但我在其他虚拟环境中运行这些教程——所以我很困惑。
如果我像这样移动我安装的应用程序的顺序:
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',
]
它给了我同样的 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'
正如我所说 - 以前,我对此没有任何问题,但现在对于我来说,我无法找出为什么这不起作用。我有一种下沉的感觉,有一些真的很简单的东西我忽略了,但我找不到它。
我可以确认我使用的是 Python 3.6
和最新版本的 pip
编辑添加:我可以使用 import localflavor
最佳答案
因为你提到它只在你运行 coverage
时发生,所以它很可能正在发生,因为 coverage
没有使用你的 virtualenv,而是你的全局 python 安装相反。
之前曾在此处发布过具有类似问题的问题 - Running coverage inside virtualenv
显然,您还需要在您的 virtualenv 中安装 coverage
才能按预期工作。
关于python - Django 覆盖 ModuleNotFoundError : No module named 'django_extensions' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50378166/