在我的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'
谢谢大家的提示,下一步该去哪里找呢?
你是否把 re.py
在工作目录中吗&&不要。