编译Vyper文件时出现‘path exists outside base folder’错误求助
解决Truffle编译Vyper文件时的"path exists outside base folder"错误
问题原因
这个错误源于Truffle无法定位到正确的Vyper合约文件路径,或是文件路径被识别为根目录绝对路径,超出了项目基础目录范围。
解决方法
- 确认文件位置:检查
VyperStorage.vy是否在项目的contracts目录下。Truffle默认从contracts目录读取合约文件,文件位置错误会直接触发路径问题。 - 指定Vyper版本与路径:打开
truffle-config.js,手动配置Vyper的编译参数(即使没修改过默认配置,也可以补充以下内容):
如果不确定Vyper的全局执行路径,也可以直接指定绝对路径:module.exports = { compilers: { vyper: { version: "0.3.7", // 替换为你通过pip安装的Vyper版本,可执行`vyper --version`查看 settings: {} } } };compilers: { vyper: { executable: "/usr/local/bin/vyper", // 替换为你的Vyper实际安装路径 settings: {} } } - 重新初始化项目:如果是Example Box下载时文件结构损坏,删除当前项目目录,重新执行
truffle unbox vyperstorage,进入新目录后再尝试编译。 - 前置验证:执行
truffle compile前,先运行ls contracts命令,确认VyperStorage.vy确实存在于该目录下。
内容的提问来源于stack exchange,提问作者Muhammad Uzair
相关产品推荐
相关产品推荐

