2016-08-05 3 views
-1

У меня есть тестовый файл: test_pytest.py:pytest юникода SyntaxError с символом '£'

def test_pytest(): 
    s = '£' 
    assert True 

Использование pytest, я бегу это так: python -m pytest test_pytest.py

Результат:

> python -m pytest test_pytest.py 
============================= test session starts ============================= 
platform win32 -- Python 3.5.2, pytest-2.9.2, py-1.4.31, pluggy-0.3.1 
rootdir: c:\temp, inifile: 
collected 0 items/1 errors 

=================================== ERRORS ==================================== 
_______________________ ERROR collecting test_pytest.py _______________________ 
c:\projects\aio-rpc\venv\lib\site-packages\_pytest\python.py:611: in _importtestmodule 
    mod = self.fspath.pyimport(ensuresyspath=importmode) 
c:\projects\aio-rpc\venv\lib\site-packages\py\_path\local.py:650: in pyimport 
    __import__(modname) 
E  File "c:\temp\test_pytest.py", line 3 
E SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xa3 in position 0: invalid start byte 
=========================== 1 error in 0.07 seconds =========================== 

Что дает?

Обратите внимание, что комментируя s='£' позволяет тест пройти

+0

иногда скрытые символы не копируются в SO, вы можете попробовать скопировать код, отправленный здесь обратно в тестовый файл, и посмотреть, не вызывает ли он ошибку? –

+0

Действительно, я пытался копировать с помощью vim и блокнота. Наверное, ты не можешь воспроизвести его в конце? –

+0

Нет, извините, я особенно смущен, что комментирование этого исправляет «SyntaxError». –

ответ

0

Глупый меня, мой Vim спасал файл с latin1 кодирования вместо UTF-8. Исправлена ​​проблема с изменением кодировки файла на utf-8.

Смежные вопросы