Conan安装时路径出现多余点引发文件找不到错误求助
Conan安装组件时出现包含多余
.的无效路径导致FileNotFoundError 问题描述
安装IOSS 7.0.0包后,Conan抛出FileNotFoundError,提示路径:
C:\Users\{USERNAME}\.conan\data\IOSS\7.0.0\Compass\Release\package\e0698b86d575a60ad0dc25e6cb03ccfbd2f6b04f\.\IOSS\Docs\Generated\html\struct_f_a_c_e_1_1_i_o_s_s_1_1_precision_synchro_1_1_i_o___p_a_r_a_m_e_t_e_r___t_r_a_n_s_a_c_t_i_o_n___t_y_p_e-members.html
不存在。异常点在于路径中\IOSS前的多余.(即...b04f\.\IOSS...),手动移除.后路径实际有效。已尝试以下方法但未解决:
- 在Conan配置文件中设置
use_always_short_paths = False - 重启电脑
- 升级Conan版本
- 启用Windows NTFS长路径
可能原因
- 包Recipe路径处理缺陷:IOSS包的Conan recipe在
package()阶段使用了带.的相对路径(如./IOSS),Conan在部署时未正确解析该相对路径,直接将.保留进了最终路径。 - Conan Windows路径解析逻辑异常:Conan在处理Windows系统路径时,对当前目录标识
.的转换逻辑出错,未自动将.\简化为直接的子目录路径。 - 本地缓存残留旧数据:即使升级了Conan,本地缓存中可能留存了旧的包路径配置,未被彻底清理。
解决方案
- 清理并重新安装包:执行以下命令彻底移除缓存中的IOSS包,再重新安装:
conan remove IOSS/7.0.0@Compass/Release -f # 重新执行你的安装命令,例如: conan install <your-conanfile> --profile <your-profile> - 检查并修正包Recipe:如果是自行维护的IOSS包Recipe,检查
package()方法中的路径复制逻辑,将类似copy(self, "*", src="./IOSS", dst="IOSS")的代码改为src="IOSS",避免引入多余的.。 - 手动修正缓存路径配置:找到包的安装目录,检查确认
IOSS目录存在后,查找并修改该包的元数据文件(如conaninfo.txt或相关路径配置文件),将所有.\IOSS替换为IOSS。 - 强制重新构建部署:安装时添加
--rebuild参数,强制Conan重新处理包的部署流程,避免复用缓存中的错误路径:conan install <your-conanfile> --rebuild
内容的提问来源于stack exchange,提问作者HOWL_CODER
相关产品推荐
相关产品推荐

