Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当运行测试时,我突然得到;类型错误:';非类型';对象是不可编辑的_Python_Django_Python 3.x_Django 1.7 - Fatal编程技术网

Python 当运行测试时,我突然得到;类型错误:';非类型';对象是不可编辑的

Python 当运行测试时,我突然得到;类型错误:';非类型';对象是不可编辑的,python,django,python-3.x,django-1.7,Python,Django,Python 3.x,Django 1.7,这对我来说是非常奇怪的,直到今天早上一切都很顺利 当我尝试使用以下命令运行单元测试时(我将Python3软链接到python) 我现在收到以下错误消息: Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/usr/lib/python3.4/site-packages/django/cor

这对我来说是非常奇怪的,直到今天早上一切都很顺利

当我尝试使用以下命令运行单元测试时(我将Python3软链接到python)

我现在收到以下错误消息:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python3.4/site-packages/django/core/management        /__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python3.4/site-packages/django/core/management        /__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python3.4/site-packages/django/core/management/commands    /test.py", line 50, in run_from_argv
    super(Command, self).run_from_argv(argv)
  File "/usr/lib/python3.4/site-packages/django/core/management    /base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/python3.4/site-packages/django/core/management/commands    /test.py", line 71, in execute
    super(Command, self).execute(*args, **options)
  File "/usr/lib/python3.4/site-packages/django/core/management    /base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python3.4/site-packages/django/core/management/commands    /test.py", line 88, in handle
    failures = test_runner.run_tests(test_labels)
  File "/usr/lib/python3.4/site-packages/django/test/runner.py", line     146, in run_tests
    suite = self.build_suite(test_labels, extra_tests)
  File "/usr/lib/python3.4/site-packages/django/test/runner.py", line     101, in build_suite
    suite.addTests(tests)
  File "/usr/lib64/python3.4/unittest/suite.py", line 60, in addTests
    for test in tests:
TypeError: 'NoneType' object is not iterable
回溯(最近一次呼叫最后一次):
文件“manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/usr/lib/python3.4/site-packages/django/core/management/_init__.py”,第385行,从命令行执行
utility.execute()
文件“/usr/lib/python3.4/site-packages/django/core/management/_init__.py”,第377行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/usr/lib/python3.4/site-packages/django/core/management/commands/test.py”,第50行,从_argv运行
超级(命令,自我)。从_argv(argv)运行_
文件“/usr/lib/python3.4/site-packages/django/core/management/base.py”,第288行,从_argv运行
self.execute(*args,**选项._dict__;
文件“/usr/lib/python3.4/site-packages/django/core/management/commands/test.py”,执行中第71行
super(命令,self).execute(*args,**选项)
文件“/usr/lib/python3.4/site-packages/django/core/management/base.py”,第338行,在execute中
输出=self.handle(*args,**选项)
文件“/usr/lib/python3.4/site-packages/django/core/management/commands/test.py”,第88行,在handle中
失败=测试运行程序。运行测试(测试标签)
文件“/usr/lib/python3.4/site packages/django/test/runner.py”,第146行,运行测试中
suite=self.build\u suite(测试标签、额外测试)
文件“/usr/lib/python3.4/site packages/django/test/runner.py”,第101行,在构建套件中
suite.addTests(测试)
addTests中的文件“/usr/lib64/python3.4/unittest/suite.py”,第60行
对于测试中的测试:
TypeError:“非类型”对象不可编辑
我最初认为我写的东西把一切都搞糟了,所以我将其保存为一个分支,在主分支中恢复为一个提交,我确定它可以工作,但我得到了完全相同的错误消息

我想不出我做了什么让事情像这样失败,事实上,上面没有指出我写过的任何东西(在我的例子中,我对Python/Django比较陌生)使我很难调试错误

我能想到的唯一改变是我的安装(我使用vim),我删除了它,但仍然发生了相同的错误

我已经重新安装了django,但仍然没有用

这是关于:

  • OpenSuse 13.2
  • Django 1.7
  • Python 3.4.1
有人能帮我一下吗

  • 调试此错误的原因(以便我不会再次陷入其中)
  • 如何着手解决这个问题

谢谢

我无法解释为什么会这样,但是当我在没有指定文件名的情况下运行“python manage.py testlist/”时,一切正常


感谢用户Ella Shar,我将更改方案/布局。我将测试设置为批准的虚线格式,如

中所述。刚刚出现此错误,是由我几个月前解决的一个问题引起的,意外地再次发生

问题是,当您为django测试指定目录时,应该为目录使用python表示法,而不是标准的shell表示法。比如说

正确-
project.tests.test\u模块


不正确-
project/tests/test\u module.py

您可能有多个包含测试的文件。这个错误发生在哪个套件上?你是指包含测试的py文件还是指像nose和tox这样的测试套件?嗯。。。。我发现了一些非常奇怪的东西。如果我运行“python manage.py test list/”,它可以工作,但是“python manage.py test list/tests.py”会脱口而出我之前粘贴的错误消息。。。为什么?我想你应该用点的格式。试试python manage.py测试列表。测试参见文档。您运行测试的方式无效。虚线格式是有效的。升级Django和PyCharm后,我遇到了完全相同的问题。正在使用测试目标的路径,该路径用于工作,但在升级后出现了您指定的确切错误。。。我把它改成了点符号,它又开始工作了。
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python3.4/site-packages/django/core/management        /__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python3.4/site-packages/django/core/management        /__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python3.4/site-packages/django/core/management/commands    /test.py", line 50, in run_from_argv
    super(Command, self).run_from_argv(argv)
  File "/usr/lib/python3.4/site-packages/django/core/management    /base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/python3.4/site-packages/django/core/management/commands    /test.py", line 71, in execute
    super(Command, self).execute(*args, **options)
  File "/usr/lib/python3.4/site-packages/django/core/management    /base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python3.4/site-packages/django/core/management/commands    /test.py", line 88, in handle
    failures = test_runner.run_tests(test_labels)
  File "/usr/lib/python3.4/site-packages/django/test/runner.py", line     146, in run_tests
    suite = self.build_suite(test_labels, extra_tests)
  File "/usr/lib/python3.4/site-packages/django/test/runner.py", line     101, in build_suite
    suite.addTests(tests)
  File "/usr/lib64/python3.4/unittest/suite.py", line 60, in addTests
    for test in tests:
TypeError: 'NoneType' object is not iterable