提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
我需要从github上下载一个项目,而这个项目需要下载fairseq,而且指定是2020年10月31日的版本。从开始到结束,花了我三天时间。
一、正常步骤
1,下载Visual Studio2022,并设置环境变量,参考这篇文章
Windows11下配置Visual Studio2022 环境变量(Windows下配置Visual Studio 通用)_vs2022环境变量配置-CSDN博客
按照这篇文章的方法,在其基础上,对系统变量也进行相同的配置
2,进入网站:facebookresearch/fairseq: Facebook AI Research Sequence-to-Sequence Toolkit written in Python. (github.com)可能需要下载加速器,比如Watt Toolkit
3,获取所需历史版本的哈希值
点击图中标记位置,然后选择时间,最后复制哈希值
4,以管理员模式运行anaconda prompt,激活下载好的虚拟环境,执行以下命令
git clone https://github.com/pytorch/fairseq
cd fairseq
git checkout 哈希值(第二步获取的)
pip install --editable ./
在以上执行完后,遇到如下报错
系统自动给出了建议
系统建议我先试一试正常安装:pip install .
git clone https://github.com/pytorch/fairseq.git
cd fairseq
git checkout 哈希值(第二步获取的)
pip install .
仍然报错:
锁定核心错误:clxx: fatal error C1083: 无法打开源文件: “fairseq/clib/libbleu/libbleu.cpp”: No such file or directory
二、故障排除
1.灵机一动
在下载fairseq之前,我刚刚完成了Visual Studio 2022的环境变量设置,而分析在执行pip install .后的报错文字,我突然发现一个问题:HostX86!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
按照我最开始给的那篇文章,我在Path变量里配置的是C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\Hostx64\x64
这一点很奇怪,我检查了环境变量,没发现我曾经对C:\ProgramFiles\MicrosoftVisualStudio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64进行配置,但不知为什么系统自动调用了HostX86文件夹里cl.exe。那么,如果使系统调用C:\ProgramFiles\MicrosoftVisualStudio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\HostX64\x64,结果又如何呢?
2.验证猜想
注意,是将在执行pip install .后的报错文字的用红括号框住的这一段代码粘贴出来,单独运行(不是pip install --editable ./产生的报错文字)看看能否打开源文件
仍然报错,但如果我把HostX86改成HostX64,奇迹发生了:源文件被成功打开了
所以,如果能够使系统自动调用Visual Studio的Hostx64文件夹下的cl.exe,或许就能安装成功。我最初想从环境变量的配置入手,但尝试了很久都没成功,系统很固执。
没办法,我想了个馊主意,把Visual Studio的Hostx86文件夹先拷贝了一份放到桌面上,然后把原位置的Hostx86文件夹删除,再次尝试以下命令:
git clone https://github.com/pytorch/fairseq.git
cd fairseq
git checkout 哈希值(第二步获取的)
pip install .
成功!!!!!!!!!!!!!!!!!!
再尝试以下命令(换个虚拟环境)
git clone https://github.com/pytorch/fairseq.git
cd fairseq
git checkout 哈希值(第二步获取的)
pip install --editable ./
也成功!!!!!!!!!!!!!!!!!!!!
总结
各位在遇到报错时,一定要认真看报错信息,并且不要总想着一步解决问题,边分析边学习,通过解决这一个问题来获取新知识!