SMPL自带的代码是用python2+chumpy,不太方便,还难理解,在github上发现了同样想改用python3+numpy计算的同道中人:
https://github.com/CalciferZh/SMPL
但要调不多不少的bug,分享给大家。
首先就是chumpy库只支持python2,从安装到运行都要改成python3的,不然就会各种报错,我就是就着报错一路改过来的:
1.安装时,因为pip版本是18,大于10,和chumpy库的setup不太一致,就会报错:
ImportError: No module named pip.req
就需要去pypi网站下载:
https://pypi.org/project/chumpy/#files
解压后,将里面的setup.py里的一句:
from pip.req import parse_requirements
改成:
from pip._internal.req import parse_requirements
然后直接用pip3用改好的文件夹安装:
sudo pip3 install /path/to/chumpy
2.chumpy库各种报错找不到各种模块:
那是因为python2和python3在自定义模块import路径写法上有区别:
假如你有一个脚本函数a.py和b.py存放在file文件夹中。当你想调用a函数时。写作:import file.a。但如果a.py需要调用b.py函数的话,在python2环境下a.py文件中直接用import b即可。但python3文件中a.py要调用b文件需要改写成import file.b。否则会出现no module named b
所以,当出现no module named ch的情况时,只需要改成
from chumpy import ch,或者import chumpy.ch as ch
3.python2和python3一些库的名字不同:
例如:no module named cPickle
pickle模块,在ython3中为import pickle,python2中为import cPickle as pickle