我是在python中对cpp文件进行编译从而安装自定义的程序包的。配置需要的环境是python+cuda+torch+一系列python包。
这里最重要的问题是torch的版本和setup的类型!
我的setup.py文件有两个,一个是只有cpu时用的(setup_onlycpu.py),另一个是有cuda时用的。
我在python setup_onlycpu.py install
前,下载了对应torch, pip install torch==1.10.1+cu102 torchvision==0.11.2+cu102 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu102/torch_stable.html
,当时我并不太清楚那个后缀 +cu102 的含义,我以为仅仅是最高兼容cuda10.2的意思。然后把各种包安装好,运行setup.py,然后就是LNK1120报错,无法识别标识符。
想了两个礼拜,偶然发现是怎么回事了。因为我用的setup.py是不考虑cuda的,而下载的torch是对应着cuda的,所以死活都链接不起来。于是把环境删除了,重头开始配,不重头的话会一直报这个错。
这一次我使用pip install torch==1.12.1 torchv ision==0.13.1 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu102
下载torch ,不再报错了。