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 工具链安装不完整。
解决
- 手动运行 foundryup 更新工具链
直接执行已存在的 foundryup 来补全缺失组件:
~/.foundry/bin/foundryup
这会自动下载最新版本的 cast、forge 等工具。
- 检查网络问题
如果 foundryup 执行后仍无 cast 文件:
可能是网络问题导致下载中断,尝试:
foundryup --verbose # 查看详细下载日志
必要时使用代理或切换网络环境。
- 验证安装路径
确认文件是否被安装到其他路径:
find ~ -name "cast" 2>/dev/null
如果发现其他路径(如 /usr/local/bin),需同步环境变量。
- 完全重装 Foundry
若问题持续,彻底删除后重装:
rm -rf ~/.foundry
curl -L https://foundry.paradigm.xyz | bash
source ~/.zshrc
foundryup
- 检查系统兼容性
确保 macOS 版本 ≥ 10.15(Catalina)
如果是 M1/M2 芯片设备,需确认 Rosetta 已安装:
softwareupdate --install-rosetta
- 验证成功
最终检查:
ls ~/.foundry/bin # 应包含 cast/forge/anvil
cast --version # 显示版本号
如果问题仍未解决,可能是 GitHub 发布页面的临时问题,建议稍后重试或通过 Foundry 官方文档 排查。
相关文章:

mac安装cast
背景 pycharm本地运行脚本时提示cast没有安装 问题原因 脚本尝试调用cast命令(以太坊开发工具foundry中的子命令),但您的系统未安装该工具。 从日志可见,错误发生在通过sysutil.py执行shell命令时。 解决方案 方法1…...
conda更换清华源
1、概览 anaconda更换速度更快、更稳定的下载源,在linux环境测试通过。 2、conda源查看 在修改之前可以查看下现有conda源是什么,查看conda配置信息,如下: cat ~/.condarc 可以看到你的conda源,以我的conda源举例&am…...
[原创](现代Delphi 12指南):[macOS 64bit App开发]: 注意“回车换行“的跨平台使用.
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…...
管理Oracle Data Guard的最佳实践
Oracle Data Guard的中文名字叫数据卫士,顾名思义,它是生产库的一道保障。所以管理Data Guard是DBA的一项重要工作之一,管理Data Guard时主要有以下几个注意点需要引起重视。 备份库的归档日志积压 一般情况下,生产库的归档日志是…...

一个简单点的js的h5页面实现地铁快跑的小游戏
以下是一个简化版的"地铁快跑"小游戏H5页面实现。这个游戏包含基本的角色跳跃、障碍物生成和计分系统,使用Canvas绘图技术实现。 完整源码 登录后复制 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-…...
作业帮Java后台开发面试题及参考答案(下)
final、finally、finalize 的区别是什么? final、finally和finalize是 Java 中三个功能完全不同的关键字,容易混淆,需从作用域、语法规则和实际用途等方面深入区分。 final的作用 final用于修饰类、方法和变量,体现 “不可变” 特性: 修饰类:表示该类不能被继承,例如 J…...

Hugging Face 中 LeRobot 使用的入门指南
相关源文件 .github/ISSUE_TEMPLATE/bug-report.yml .github/PULL_REQUEST_TEMPLATE.md README.md examples/1_load_lerobot_dataset.py examples/2_evaluate_pretrained_policy.py examples/3_train_policy.py lerobot/scripts/eval.py lerobot/scripts/train.py 本页面提供 …...

零基础入门Hadoop:IntelliJ IDEA远程连接服务器中Hadoop运行WordCount
今天我们来聊一聊大数据,作为一个Hadoop的新手,我也并不敢深入探讨复杂的底层原理。因此,这篇文章的重点更多是从实际操作和入门实践的角度出发,带领大家一起了解大数据应用的基本过程。我们将通过一个经典的案例——WordCounter&…...

HTML-3.3 表格布局(学校官网简易布局实例)
本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。 系列文章目录 HTML-1.1 文本字体样式-字体设置、分割线、段落标签、段内回车以及特殊符号 HTML…...
Maven构建流程详解:如何正确管理微服务间的依赖关系-当依赖的模块更新后,我应该如何重新构建主项目
文章目录 一、前言二、Maven 常用命令一览三、典型场景说明四、正确的构建顺序正确做法是: 五、为什么不能只在 A 里执行 clean install?六、进阶推荐:使用多模块项目(Multi-module Project)七、总结 一、前言 在现代…...

遗传算法求解旅行商问题分析
目录 一、问题分析 二、实现步骤 1)初始化种群 2)计算适应度 3)选择操作 4)交叉操作 5)变异操作 三、求解结果 四、总结 本文通过一个经典的旅行商问题,详细阐述在实际问题中如何运用遗传算法来进…...
【hot100-动态规划-300.最长递增子序列】
力扣300.最长递增子序列思路解析 本题要求在一个整数数组 nums 中,找到最长严格递增子序列的长度。子序列是指从原数组中派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 动态规划思路 定义状态:…...
PostgreSQL malformed array literal异常
现象 在一个存储过程中编写如下代码(省略与本异常无关的代码): declare hbsn_arr varchar(240)[]; #bddm.hbsn 内容类似于{"chain0":["NULL"],"chain1":["FESDF09402342","NULL"],...} …...

打造网络安全堡垒,企业如何应对DDoS、CC、XSS和ARP攻击
网站已经成为企业展示形象、开展业务和实现线上营销的重要平台。然而,随着网络攻击手段的不断升级,DDoS、CC、XSS、ARP等攻击频频出现,严重威胁到企业的信息安全和业务稳定。本文将详细阐述网站被攻击后应采取的应急措施及预防策略࿰…...
Oracle统计信息收集时的锁持有阶段
Oracle统计信息收集时的锁持有阶段 1 准备阶段(共享模式锁) 锁类型:对象级共享锁(S锁) 持续时间:通常1-5秒 主要操作: 验证对象存在性和权限检查统计信息首选项设置确定采样方法和并行度 监…...

深度解析物理机服务器故障修复时间:影响因素与优化策略
一、物理机故障修复的核心影响因素 物理机作为企业 IT 基础设施的核心载体,其故障修复效率直接关系到业务连续性。故障修复时间(MTTR)受多重因素交叉影响: 1. 故障类型的复杂性 硬件级故障: 简单故障:内存…...

印度全印度游戏联合会(AIGF)介绍与用途
本文为印度AIGF的介绍科普文,自去年开始,印度Rummy类游戏申请印度支付都需要拥有AIGF的会员及产品证书。 如需要rummy可以通过AIGF审核的源。码,或咨询AIGF的相关内容,可以联。系老妙。 全印度游戏联合会(All India G…...

可视化数据图表怎么做?如何实现三维数据可视化?
目录 一、三维数据可视化的要点 1. 明确数据可视化的目标 2. 筛选与整理数据 3. 选择合适的图表类型 4. 运用专业工具制作 5. 优化图表的展示效果 二、数据可视化图表怎么做? 1. 理解三维数据的特性 2. 数据处理与三维建模 3. 设置光照与材质效果 4. 添加…...
什么是模态内异质性,什么是模态间异质性?
首先,理解一下“模态”(Modality)和“异质性”(Heterogeneity)。 模态:你可以简单理解为不同种类或形式的信息。比如: 文字(文本)是一种模态。图片(图像&…...

视频分辨率增强与自动补帧
一、视频分辨率增强 1.传统分辨率增强方法 传统的视频分辨率增强方法主要基于插值技术。这些方法通过对低分辨率视频帧中已知像素点的分布规律和相邻像素之间的相关性进行分析,在两者之间插入新的像素点以达到增加视频分辨率的目的。例如,最近邻插值算…...

【SPIN】用Promela验证顺序程序:从断言到SPIN实战(SPIN学习系列--2)
你写了一段自认为“天衣无缝”的程序,但如何确保它真的没有bug?靠手动测试?可能漏掉边界情况;靠直觉?更不靠谱!这时候,Promela SPIN组合就像程序的“显微镜”——用形式化验证技术,…...

降本增效双突破:Profinet转Modbus TCP助力包布机产能与稳定性双提升
在现代工业自动化领域,ModbusTCP和Profinet是两种常见的通讯协议。它们在数据传输、设备控制等方面有着重要作用。然而,由于这两种协议的工作原理和应用环境存在差异,直接互联往往会出现兼容性问题。此时,就需要一种能够实现Profi…...

JESD204 ip核使用与例程分析(一)
JESD204 ip核使用与例程分析(一) JESD204理解JESD204 与JESD204 PHY成对使用原因JESD204B IP核JESD204B IP核特点JESD204B IP核配置第一页第二页第三页第四页JESD204 PHY IP核配置第一页第二页JESD204理解 JESD204B是一种针对ADC、DAC设计的传输接口协议。此协议包含四层, …...
V837s-LAN8720A网口phy芯片调试
目录 前言 一、LAN8720A 芯片概述 二、硬件连接 三、设备树配置 四、内核配置 五、网口调试 总结 前言 在嵌入式系统开发中,网络连接是至关重要的一部分。v837s开发板搭载了LAN8720A系列的网口PHY芯片,用于实现以太网连接。在开发过程中,对于网口的稳定性和性能的调试至…...

Kubernetes控制平面组件:Kubelet详解(一):API接口层介绍
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
Python60日基础学习打卡D26
算圆形面积 错误代码 import mathdef calculate_circle_area(r):try:S math.pi * r**2except r<0:print("半径不能为负数")return S 正确代码 import mathdef calculate_circle_area(radius):try:if radius < 0:return 0return math.pi * radius…...

牛客网NC22015:最大值和最小值
牛客网NC22015:最大值和最小值 题目描述 题目要求 输入:一行,包含三个整数 a, b, c (1≤a,b,c≤1000000) 输出:两行,第一行输出最大数,第二行输出最小数。 样例输入: …...

浪潮云边协同:赋能云计算变革的强力引擎
在数字化浪潮以排山倒海之势席卷全球的当下,第五届数字中国建设峰会在福州盛大开幕。这场以“创新驱动新变革,数字引领新格局”为主题的行业盛会,宛如一座汇聚智慧与力量的灯塔,吸引了国内外众多行业精英齐聚一堂,共同…...
Secs/Gem第七讲(基于secs4net项目的ChatGpt介绍)
好的,那我们现在进入: 第七讲:掉电重连后,为什么设备不再上报事件?——持久化与自动恢复的系统设计 关键词:掉电恢复、状态重建、初始化流程、SecsMessage 缓存机制、自动重连、事件再注册 本讲目标 你将理…...
ruskal 最小生成树算法
https://www.lanqiao.cn/problems/17138/learning/ 并查集ruskal 最小生成树算法 Kruskal 算法是一种用于在加权无向连通图中寻找最小生成树(MST)的经典算法。其核心思想是基于贪心策略,通过按边权从小到大排序并逐步选择边,确保…...