当前位置: 首页 > ds >正文

mac安装cast

背景

pycharm本地运行脚本时提示cast没有安装
在这里插入图片描述

问题原因

脚本尝试调用cast命令(以太坊开发工具foundry中的子命令),但您的系统未安装该工具。
从日志可见,错误发生在通过sysutil.py执行shell命令时。

解决方案

方法1:安装foundry工具集

1、打开终端,执行安装命令:

curl -L https://foundry.paradigm.xyz | bash

安装完成后,脚本会提示将 ~/.foundry/bin 添加到 PATH。如果没有自动配置,需手动操作。

2、安装完成后运行:

foundryup

3、配置环境变量
针对 zsh(macOS 默认 shell):
编辑 ~/.zshrc 文件:

nano ~/.zshrc

在文件末尾添加:

export PATH="$HOME/.foundry/bin:$PATH"

保存后加载配置:

source ~/.zshrc

验证配置是否生效:

echo $PATH | grep foundry  # 应显示 ~/.foundry/bin
which foundryup           # 应返回路径 ~/.foundry/bin/foundryup

4、验证安装:

cast --version

5、手动运行 foundryup
如果环境变量已配置但仍报错,尝试直接运行绝对路径:

~/.foundry/bin/foundryup

6、检查权限问题
确保 foundryup 有可执行权限:

chmod +x ~/.foundry/bin/foundryup

7、验证安装成功
运行以下命令确认工具链可用:

foundryup -v  # 查看版本
cast --help   # 检查 cast 命令

如果问题仍未解决,可能是安装过程中断导致文件损坏,建议删除 ~/.foundry 目录后重新安装。

方法2:检查PATH环境变量

如果已安装但仍报错:

echo $PATH
which cast

确保foundry的安装路径(通常是~/.foundry/bin)已加入PATH:

export PATH="$HOME/.foundry/bin:$PATH"

安装完成

1、检查 Foundry 是否已安装:

ls ~/.foundry/bin

如果目录存在且包含 foundryup、cast 等文件,说明已安装但未配置环境变量。如果目录不存在,需要重新安装。

问题1

运行ls ~/.foundry/bin 后有foundryup 但是没有cast文件

问题说明
如果 ls ~/.foundry/bin 显示有 foundryup 但没有 cast 文件,说明 Foundry 工具链安装不完整。

解决

  1. 手动运行 foundryup 更新工具链
    直接执行已存在的 foundryup 来补全缺失组件:
~/.foundry/bin/foundryup

这会自动下载最新版本的 cast、forge 等工具。

  1. 检查网络问题
    如果 foundryup 执行后仍无 cast 文件:

可能是网络问题导致下载中断,尝试:

foundryup --verbose  # 查看详细下载日志

必要时使用代理或切换网络环境。

  1. 验证安装路径
    确认文件是否被安装到其他路径:
find ~ -name "cast" 2>/dev/null

如果发现其他路径(如 /usr/local/bin),需同步环境变量。

  1. 完全重装 Foundry
    若问题持续,彻底删除后重装:
rm -rf ~/.foundry
curl -L https://foundry.paradigm.xyz | bash
source ~/.zshrc
foundryup
  1. 检查系统兼容性
    确保 macOS 版本 ≥ 10.15(Catalina)
    如果是 M1/M2 芯片设备,需确认 Rosetta 已安装:
softwareupdate --install-rosetta
  1. 验证成功

最终检查:

ls ~/.foundry/bin  # 应包含 cast/forge/anvil
cast --version    # 显示版本号

如果问题仍未解决,可能是 GitHub 发布页面的临时问题,建议稍后重试或通过 Foundry 官方文档 排查。

http://www.xdnf.cn/news/6418.html

相关文章:

  • 医疗数据迁移质量与效率的深度研究:三维六阶框架与实践创新
  • 【QGIS二次开发】地图显示与交互-03
  • Windows平台OpenManus部署及WebUI远程访问实现
  • JS中的数据类型
  • 匿名函数lambda、STL与正则表达式
  • 3天北京旅游规划
  • 动态规划问题 -- 多状态模型(删除并获得点数)
  • 【python】windows实现与k230使用socket通信并传输文件
  • 第二十四天打卡
  • AVLTree的模拟实现
  • 内存分配器ptmalloc2、tcmalloc、jemalloc,结构设计、内存分配过程详解
  • Cesium.Ray 知识详解,示例代码
  • 实验六:按键模拟控制实现
  • Java—— 可变参数、集合工具类、集合嵌套、不可变集合
  • 十个免费试用的云数据库
  • Awesome WM自定义菜单实现nas共享目录挂载
  • K8S Ingress 实现AB测试、蓝绿发布、金丝雀(灰度)发布
  • 基于大模型预测的全面惊厥性癫痫持续状态技术方案大纲
  • 力扣-98.验证二叉搜索树
  • C# winform 日志 NLog
  • 【vue】脚手架
  • 瀑布模型VS敏捷模型VS喷泉模型
  • 【Linux】多路转接epoll、Linux高并发I/O多路复用
  • SpringAI
  • 印度尼西亚数据源对接技术指南
  • YOLOv11融合[CVPR2025]OverLock中的模块
  • 合并有重叠的时间区间的极简方法
  • 【证书与信任机制​】​​SSL证书类型全解析:DV、OV、EV的区别与应用场景
  • 【C#基础】集合.Any() 与 判断集合的长度有啥区别?
  • atoi函数,sprintf函数,memcmp函数,strchar函数的具体原型,功能,返回值;以及使用方法