前言
使用MTK 8516 平台配置linux Yocto系统配置python环境时遇到了很多报错,把这些问题和解决办法记录下来,方便大家参考。
1. pip install 已导入,但是impot 提示 no module named
参考链接:https://blog.csdn.net/qq_39915318/article/details/106003608
解决办法:在linux命令行下使用 expert 工具:
export PYTHONPATH=/usr/local/lib/python3.5/dist-packages
此时,可以打印 echo $PYTHONPATH 查看一下是否添加成功:
在Yocto系统下默认的python3.5的库下载路径是:/usr/lib/python3.5/site-packages,
所以命令应该是:
export PYTHONPATH=/usr/lib/python3.5/site-packages。
2. 安装numpy报错RuntimeError: Running cythonize failed!
解决办法:编译安装cython
3. 安装numpy提示 RuntimeError: Broken toolchain: cannot link a simple C program
这个其实是pip 在更新numpy的时候出的问题。
解决方法:
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip3 install numpy
在Python27\Lib\distutils\msvc9compiler.py 文件中,找到
mfinfo = self.manifest_get_embed_info(target_desc, ld_args)行将其改为
mfinfo=none
在linux系统中使用find命令:
find -name ‘msvc9compiler.py’
/usr/lib64/python3.5/distutils/msvc9compiler.py
4. 提示‘no such file “ref.txt”’
是python中绝对路径和相对路径的问题,修改path为当前文件的绝对路径。
方法:
filepath = os.path.dirname(__file__) + '/'
5. 安装包出现问题,主要是from aip import AipSpeech、import speech_recognition as sr中的aip、speech_recognition包为啥安装不成功?
解决办法:这两个包比较特殊,在import的时候是aip和speech_recognition,但在install安装的时候分别是baidu-aip和SpeechRecognition,
6. 使用ffmpg将多声道合并为单声道:
ffmpeg -i 1.wav -f wav -ac 1 -ab 16 -y mono.wav
7. 提示:UnicodeEncodeError: ‘ascii’ codec can’t encode character ‘\u3002’ in position 22: ordinal not in range(128)。
原因:linux环境中的输出编码是ansi,不是utf-8。
参考链接:utf-8问题
解决办法:前面加一个条件:PYTHONIOENCODING=utf-8 ,
即执行
PYTHONIOENCODING=utf-8 python3 A1hub.py
8. 提示:{‘err_detail’: ‘4: Open api request limit reached’, ‘err_msg’: ‘4: Open api request limit reached’, ‘err_no’: 502, ‘err_subcode’: 4, ‘tts_logid’: 885259082}
问题原因:百度api中没有开通语音合成服务。
解决办法:在百度控制台中开通语音合成服务(可领取5000次免费额度)。
9. 提示:OSError: [Errno 30] Read-only file system: '/usr/lib/python3.5/site-packages……
原因:文件夹为只读,需要加写的权限。
方法:执行
mount -o remount,rw rootfs /
10. 百度TTS api 输出wav文件格式乱码。
问题:百度TTS api 内没有设置输出文件格式。
参考链接:https://www.cnblogs.com/Jorgensen/p/11546486.html
解决方法:aue参数选择6。6对应wav格式,默认是输出mp3格式。
参数解释:
PER = 0# 发音人选择, 基础音库:0为度小美,1为度小宇,3为度逍遥,4为度丫丫,# 精品音库:5为度小娇,103为度米朵,106为度博文,110为度小童,111为度小萌,默认为度小美
SPD = 4# 语速,取值0-15,默认为5中语速
PIT = 5# 音调,取值0-15,默认为5中语调
VOL = 5# 音量,取值0-9,默认为5中音量
AUE = 3# 下载的文件格式, 3:mp3(default) 4: pcm-16k 5: pcm-8k 6. Wav
FORMATS = {3: “mp3”, 4: “pcm”, 5: “pcm”, 6: “wav”}
FORMAT = FORMATS[AUE]
11. 提示:RankWarning: Polyfit may be poorly conditioned
问题原因:MAC 升级BigSur 后python3.9跟numpy不兼容。
解决办法:先执行
brew install openblas
再执行
OPENBLAS="$(brew --prefix openblas)" pip3 install numpy
12. 安装Matplotlib库报错(macOS,BigSur版本)
原因:升级setuptools到版本51。
参考链接:https://stackoverflow.com/questions/64884415/cant-install-matplotlib-on-macos-big-sur
方法:
pip3 install setuptools==51 --user