SyntaxError: неверный синтаксис при создании virtualenv - PullRequest
0 голосов
/ 03 июня 2019

Я хотел создать virtualenv для Python 2.7 (я использую 3.7)

Я запускаю cmd от имени администратора (в Windows 10):

C:\WINDOWS\system32>virtualenv -p C:\Python27\python.exe py27

Я получил ошибку:

Running virtualenv with interpreter C:\Python27\python.exe
Traceback (most recent call last):
  File "c:\path\to\virtualenv.py", line 26, in <module>
    import logging
  File "C:\Python27\lib\logging\__init__.py", line 43, in <module>
    import threading
  File "C:\Python27\lib\threading.py", line 15, in <module>
    from collections import deque
  File "C:\Python27\lib\collections\__init__.py", line 55
    raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
                                                                        ^
SyntaxError: invalid syntax

Когда я запускаю Python2.7 и пытаюсь импортировать модуль журналирования: он показывает ту же ошибку, но когда я ее перепечатываю. Работает просто отлично:

>>> import logging
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\logging\__init__.py", line 43, in <module>
    import threading
  File "C:\Python27\lib\threading.py", line 15, in <module>
    from collections import deque
  File "C:\Python27\lib\collections\__init__.py", line 55
    raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
                                                                        ^
SyntaxError: invalid syntax
>>> import logging
>>> logging.warning('hello word')
WARNING:root:hello word
>>>

Я не могу понять, почему это так.

Я уже настроил виртуальную среду с Python 3.6

Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 03 июня 2019

У вас проблема с версией.Эта строка

raise AttributeError(f'module {__name__!r} has no attribute {name!r}')

запускается под Python 2.7, но представляет собой Python 3.6 (или 3.7) и даст вам синтаксическую ошибку в более ранних версиях.В вашем случае я бы отнесся к этой установке Python 2.7 как к безвозвратно испорченной, потому что ясно, что стандартной библиотеке нельзя доверять всем, чтобы она была согласованной версии.

0 голосов
/ 04 июня 2019

Проблема была решена путем удаления каталога c: \ Python27, затем удаления Python 2.7 с помощью инструмента настройки, перезагрузки компьютера и переустановки Python 2.7

...