SyntaxError:创建virtualenv时语法无效

时间:2019-06-03 09:49:52

标签: python logging module virtualenv

我想为python 2.7创建一个virtualenv(我正在使用3.7)

我以admin身份运行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 个答案:

答案 0 :(得分:1)

您有版本问题。这行

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

在Python 2.7下运行,但在Python 3.6(或3.7)下运行,并且会在早期版本中给您带来语法错误。在您的情况下,我认为Python 2.7的安装是无法修复的,因为很明显,标准库不应该被所有人视为一致的版本。

答案 1 :(得分:0)

问题已解决:删除c:\ Python27目录,然后使用安装工具卸载python 2.7,重新启动计算机并重新安装python 2.7