django manage.py执行命令报错,怎么回事,求大神解救
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django manage.py执行命令报错,怎么回事,求大神解救相关的知识,希望对你有一定的参考价值。
我在执行makemigrations命令的时候报错,错误信息如下,语法错误?不懂。
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "D:\python\lib\site-packages\django\core\management\__init__.py", line 36
3, in execute_from_command_line
utility.execute()
File "D:\python\lib\site-packages\django\core\management\__init__.py", line 30
7, in execute
settings.INSTALLED_APPS
File "D:\python\lib\site-packages\django\conf\__init__.py", line 56, in __geta
ttr__
self._setup(name)
File "D:\python\lib\site-packages\django\conf\__init__.py", line 41, in _setup
self._wrapped = Settings(settings_module)
File "D:\python\lib\site-packages\django\conf\__init__.py", line 110, in __ini
t__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "D:\python\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 661, in exec_module
File "<frozen importlib._bootstrap_external>", line 767, in get_code
File "<frozen importlib._bootstrap_external>", line 727, in source_to_code
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "D:\python\Scripts\isoland\isoland\settings.py", line 98
AUTH_PASSWORD_VALIDATORS = [
^
SyntaxError: invalid syntax
还是同样报错,我发现运行manage.py就会报这个错误,无论命令是什么、这个怎么回事?
参考技术A 我也卡在这很久了,但是我过来了,又卡在别的地方了.你先仔细的检查你的代码有没有打错,连一个空格都不行.
特别是models.py里面的 参考技术B python换成python3
如何查看在 Django 的 manage.py test 命令期间运行了哪些测试
【中文标题】如何查看在 Django 的 manage.py test 命令期间运行了哪些测试【英文标题】:How to see which tests were run during Django's manage.py test command 【发布时间】:2014-02-25 08:16:53 【问题描述】:使用 Django 的 manage.py test
命令完成测试执行后,只有通过的测试数量会打印到控制台。
(virtualenv) G:\Project\>python manage.py test
Creating test database for alias 'default'...
True
..
----------------------------------------------------------------------
Ran 2 tests in 0.017s
OK
Destroying test database for alias 'default'...
有什么办法可以看到:
-
实际执行了哪些测试
来自哪个模块
按什么顺序
我在文档中没有找到任何解决方案。
【问题讨论】:
【参考方案1】:您可以将-v 2
传递给test
命令:
python manage.py test -v 2
运行此命令后,您将得到类似的结果(我使用的是 django 2,请随意忽略迁移/数据库的内容):
Creating test database for alias 'default' ('file:memorydb_default?mode=memory&cache=shared')...
Operations to perform:
Synchronize unmigrated apps: messages, staticfiles
Apply all migrations: admin, auth, contenttypes, sessions
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Running migrations:
Applying contenttypes.0001_initial... OK
...
Applying sessions.0001_initial... OK
System check identified no issues (0 silenced).
test_equal_hard (polls.tests.TestHard) ... ok <--------+
test_equal_simple (polls.tests.TestSimple) ... ok <--------+
|
|
That's your tests! >----------------------------+
顺便说一句,v
代表冗长(你也可以使用--verbosity=2
):
python manage.py test --verbosity=2
这是python manage.py test --help
的摘录:
-v 0,1,2,3, --verbosity 0,1,2,3
详细程度; 0=最小输出,1=正常输出, 2=详细输出,3=非常详细的输出
【讨论】:
我尝试了所有详细级别,但找不到显示没有迁移/数据库输出的单元测试的级别。如果没有 3rd 方库,这真的不可能吗? 要隐藏迁移日志,您可以执行类似python manage.py test -v 2 | grep test*
【参考方案2】:
奈杰尔的回答很棒,而且绝对是入门门槛最低的选择。但是,您可以使用django_nose
获得更好的反馈(而且设置起来并不困难;)。
以下来自:BDD with Python
首先:安装一些要求:
pip install nose pinocchio django_nose
然后将以下内容添加到settings.py
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = ['--with-spec', '--spec-color']
然后正常运行测试:
python manage.py test
输出应该是这样的:
注意:您所测试的 cmets 可用于提供比名称更好的输出。
例如:
def test_something(self):
"""Something should happen"""
...
运行测试时会输出“Something should occur”。
加分项:您还可以生成/输出您的代码覆盖率:
pip install coverage
在 settings.py 中将以下内容添加到您的 NOSE_ARGS:'--with-coverage', '--cover-html', '--cover-package=.', '--cover-html-dir=reports/cover'
例如:
NOSE_ARGS = ['--with-spec', '--spec-color',
'--with-coverage', '--cover-html',
'--cover-package=.', '--cover-html-dir=reports/cover']
然后,当您运行 python manage.py test
时,您将获得一个很好的代码覆盖率摘要,以及在 reports/cover
中的一个简洁的 html 报告
【讨论】:
嗨@toast38coza。这很整洁。我是 Python 新手,很高兴看到格式良好的测试输出。我正在寻找 NOSE_ARGS 的文档,但我发现的内容都没有显示 --With-spec 和类似的。你能指点我吗?我基本上是想防止鼻子重复“类似于 TransactionTestCase,但使用transaction.atomic()
来实现测试隔离......nTestCase 可能是必要的(例如测试一些事务行为)。”
@MacarioTala --with-spec 参数来自pinocchio
插件(你可以 pip install )。看看上面说的:“首先安装一些要求”。
是的。我已经安装好了。让我试着找到有关木偶奇遇记的文档。谢谢!
为了分享,我换掉了匹诺曹,因为它有点太冗长了,而不是分叉,我发现了这个:gfxmonk.net/dist/0install/rednose.xml,你可能也会喜欢它。以上是关于django manage.py执行命令报错,怎么回事,求大神解救的主要内容,如果未能解决你的问题,请参考以下文章
Django :执行 python manage.py makemigrations 时报错 TypeError: __init__() missing 1 required positional a
如何解决在 Django 中执行 manage.py runserver 命令时的错误原因?
如何直接从测试驱动程序调用自定义 Django manage.py 命令?