Windows AttributeError:StringIO实例没有属性';编码';
在调试nosetests时使用PyCharm的交互控制台时,出现以下错误:Windows AttributeError:StringIO实例没有属性';编码';,windows,python-2.7,console,pycharm,nose,Windows,Python 2.7,Console,Pycharm,Nose,在调试nosetests时使用PyCharm的交互控制台时,出现以下错误: AttributeError: StringIO instance has no attribute 'encoding' 我找到了一些指导,但我不知道如何将其应用于我的情况 我如何解决这个问题 完整堆栈跟踪: Traceback (most recent call last): File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pyd
AttributeError: StringIO instance has no attribute 'encoding'
我找到了一些指导,但我不知道如何将其应用于我的情况
我如何解决这个问题
完整堆栈跟踪:
Traceback (most recent call last):
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pydev\_pydevd_bundle\pydevd_comm.py", line 1409, in do_it
result = pydevconsole.console_exec(self.thread_id, self.frame_id, self.expression, dbg)
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pydev\pydevconsole.py", line 475, in console_exec
need_more = exec_code(CodeFragment(expression), updated_globals, frame.f_locals, dbg)
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pydev\pydevconsole.py", line 392, in exec_code
interpreterInterface = get_interpreter()
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pydev\pydevconsole.py", line 372, in get_interpreter
interpreterInterface = InterpreterInterface(None, None, threading.currentThread())
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pydev\_pydev_bundle\pydev_ipython_console.py", line 25, in __init__
self.interpreter = get_pydev_frontend(host, client_port, show_banner=show_banner)
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pydev\_pydev_bundle\pydev_ipython_console_011.py", line 488, in get_pydev_frontend
_PyDevFrontEndContainer._instance = _PyDevFrontEnd(show_banner=show_banner)
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pydev\_pydev_bundle\pydev_ipython_console_011.py", line 318, in __init__
self.ipython = PyDevTerminalInteractiveShell.instance()
File "C:\Users\jimgo\Anaconda2\lib\site-packages\traitlets\config\configurable.py", line 412, in instance
inst = cls(*args, **kwargs)
File "C:\Users\jimgo\Anaconda2\lib\site-packages\IPython\terminal\interactiveshell.py", line 396, in __init__
super(TerminalInteractiveShell, self).__init__(*args, **kwargs)
File "C:\Users\jimgo\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 499, in __init__
self.init_io()
File "C:\Users\jimgo\Anaconda2\lib\site-packages\IPython\terminal\interactiveshell.py", line 363, in init_io
self.enable_win_unicode_console()
File "C:\Users\jimgo\Anaconda2\lib\site-packages\IPython\terminal\interactiveshell.py", line 357, in enable_win_unicode_console
stderr=stderr_text_str)
File "C:\Users\jimgo\Anaconda2\lib\site-packages\win_unicode_console\__init__.py", line 31, in enable
readline_hook.enable(use_pyreadline=use_pyreadline)
File "C:\Users\jimgo\Anaconda2\lib\site-packages\win_unicode_console\readline_hook.py", line 134, in enable
check_encodings()
File "C:\Users\jimgo\Anaconda2\lib\site-packages\win_unicode_console\readline_hook.py", line 50, in check_encodings
if sys.stdin.encoding != sys.stdout.encoding:
AttributeError: StringIO instance has no attribute 'encoding'
在PyCharm中,转到Run>Edit Configurations>Defaults>Python测试>Nosetests
。在附加参数下
放置--nocapture
。然后从左侧窗格顶部删除所有现有的测试配置
再次尝试调试测试。不要单击“调试”面板中的“重新测试”按钮,因为这似乎重复使用了以前的配置。例如,右键单击测试文件,再次运行测试
万一有人出现在这里。。。通过使用以下命令,我得到了类似的堆栈跟踪:
import pdb; pdb.set_trace()
就我而言,这是因为我已将Django配置为:
TEST_RUNNER = 'xmlrunner.extra.djangotestrunner.XMLTestRunner'
偷了我的衣服