Python3:ImportError: No module named 'compiler.ast'


from compiler.ast import flatten

上面這條語句好像在python3 以后就廢除了,如果使用的話就會報錯。
Traceback (most recent call last):
File "eval_ssd_network.py", line 31, in <module>
from compiler.ast import flatten
ImportError: No module named 'compiler'

或者
Traceback (most recent call last):
File "eval_ssd_network.py", line 31, in <module>
from compiler.ast import flatten
ImportError: No module named 'compiler.ast'

因此,查資料顯示,需要自己寫一個函數:
import collections
def flatten(x):
result = []
for el in x:
if isinstance(x, collections.Iterable) and not isinstance(el, str):
result.extend(flatten(el))
else:
result.append(el)
return result

print(flatten(["junk",["nested stuff"],[],[[]]]))


參考文獻
[1].Python 3 replacement for deprecated compiler.ast flatten function.https://stackoverflow.com/questions/16176742/python-3-replacement-for-deprecated-compiler-ast-flatten-function
[2].Python 3 replacement for deprecated compiler.ast flatten function. https://reformatcode.com/code/python/python-3-replacement-for-deprecated-compilerast-flatten-function

---------------------
作者:農民小飛俠
來源:CSDN
原文:https://blog.csdn.net/w5688414/article/details/78489277
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM