AttributeError: module 're' has no attribute 'IGNORECASE' ...only in pyenv build

问题描述 投票:0回答:1

在我的Mac OSX pyenv python 3.7.3上,一个简单的基数转换器失败了,其中包括

  File "/Users/geo/.pyenv/versions/3.7.3/lib/python3.7/string.py", line 88, in Template
    flags = _re.IGNORECASE

同样的代码在brew 3.7.3中也可以使用。

重新安装了pyenv3.7.3,并对比了3.7.3libpython3.7string.py文件(它们是一样的),以下是程序内容

import sys
import string

digs = string.digits + string.ascii_letters

def d2b(x, b):
    if x < 0:
        sign = -1
    elif x == 0:
        return digs[0]
    else:
        sign = 1
    x *= sign
    digits = []
    while x:
        digits.append(digs[int(x % b)])
        x = int(x / b)
    if sign < 0:
        digits.append('-')
    digits.reverse()
    return ''.join(digits)

print(d2b(int(sys.argv[1]),int(sys.argv[2])))

这里有成功的,也有失败的调用...。

 /usr/local/bin/python3 lang/py/d2b.py 17 16
11
 /Users/geo/.pyenv/versions/3.7.3/bin/python3.7 lang/py/d2b.py 17 16
0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,Traceback (most recent call last):
  File "lang/py/d2b.py", line 3, in <module>
    import string
  File "/Users/geo/.pyenv/versions/3.7.3/lib/python3.7/string.py", line 78, in <module>
    class Template(metaclass=_TemplateMetaclass):
  File "/Users/geo/.pyenv/versions/3.7.3/lib/python3.7/string.py", line 88, in Template
    flags = _re.IGNORECASE
AttributeError: module 're' has no attribute 'IGNORECASE'

谢谢大家的提示,下一步该去哪里找呢?

python macos pyenv
1个回答
0
投票

你是否把 re.py 在工作目录中吗&&不要。

© www.soinside.com 2019 - 2024. All rights reserved.