这个问题是在运行pytorch项目时产生的,项目需要引入使用ninja编译的模块。
解决方法如下:
编译ninja
$ ./bootstrap.py
编译结束后会生成一个名为“ninja”的文件,把这个文件复制到所在环境的系统目录,我是在虚拟环境里安装的ninja,所以是虚拟环境地址,如果是系统环境,复制地址应为"/usr/bin"
$ cp ninja /home/zxq/.conda/envs/pytorch-1.7/bin
检查ninja版本,看是否安装成功
$ ninja --version
进入build.ninja所在目录
$ cd /home/zxq/.cache/torch_extensions/cd
编译
$ ninja
编译结束后会发现“/home/zxq/.cache/torch_extensions/cd”目录下新生成了几个文件,包括“cd.so”。现在再运行项目,就不会报找不到“cd”模块的错了。
解决这类问题的关键在于要知道“x.so”对应的“build.ninja”位置,然后手动ninja编译,生成“x.so”。