下载fairseq的艰难历程:直面 error C1083: 无法打开源文件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

我需要从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 ./

也成功!!!!!!!!!!!!!!!!!!!!

总结

各位在遇到报错时,一定要认真看报错信息,并且不要总想着一步解决问题,边分析边学习,通过解决这一个问题来获取新知识!

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值