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.mzph.cn/web/80476.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【搭建Node-RED + MQTT Broker实现AI大模型交互】

搭建Node-RED MQTT Broker实现AI大模型交互 搭建Node-RED MQTT Broker实现AI大模型交互一、系统架构二、环境准备与安装1. 安装Node.js2. 安装Mosquitto MQTT Broker3. 配置Mosquitto4. 安装Node-RED5. 配置Node-RED监听所有网络接口6. 启动Node-RED 三、Node-RED流程配置1. …

算法第21天 | 第77题. 组合、216. 组合总和 III、17. 电话号码的字母组合

回溯基础概念 什么是回溯? 如何实现回溯? 第77题. 组合 题目 思路与解法 carl的讲解: 回溯搜索法 class Solution:def combine(self, n: int, k: int) -> List[List[int]]:self.path []self.res []self.backtracking(n, k, 1)retu…

嵌入式硬件篇---拓展板

文章目录 前言 前言 本文简单介绍了拓展板的原理以及使用。

【深度学习基础】从感知机到多层神经网络:模型原理、结构与计算过程全解析

【深度学习基础】从感知机到多层神经网络:模型原理、结构与计算过程全解析 1. 引言 神经网络的重要性: 作为人工智能的核心技术之一,神经网络通过模拟人脑神经元的工作机制,成为解决复杂模式识别、预测和决策任务的利器。从图像分…

sparkSQL读入csv文件写入mysql(2)

(二)创建数据库和表 接下来,我们去创建一个新的数据库,数据表,并插入一条数据。 -- 创建数据库 CREATE DATABASE spark; -- 使用数据库 USE spark;-- 创建表 create table person(id int, name char(20), age int);-- …

JVM如何处理多线程内存抢占问题

目录 1、堆内存结构 2、运行时数据 3、内存分配机制 3.1、堆内存结构 3.2、内存分配方式 1、指针碰撞 2、空闲列表 4、jvm内存抢占方案 4.1、TLAB 4.2、CAS 4.3、锁优化 4.4、逃逸分析与栈上分配 5、问题 5.1、内存分配竞争导致性能下降 5.2、伪共享&#xff08…

Ubuntu---omg又出bug了

自用遇到问题的合集 250518——桌面文件突然消失 ANS:参考博文

正则表达式与文本处理的艺术

引言 在前端开发领域,文本处理是一项核心技能。正则表达式作为一种强大的模式匹配工具,能够帮助我们高效地处理各种复杂的文本操作任务。 正则表达式基础 什么是正则表达式? 正则表达式是一种用于匹配字符串中字符组合的模式。它由一系列…

初学c语言15(字符和字符串函数)

一.字符串分类函数 头文件:ctype.h 作用:判断是什么类型的字符 函数举例: 函数 符合条件就为真 islower判断是否为小写字符(a~z)isupper判断是否为大写字符(A~Z)isdigit十进制数字&#xf…

12-串口外设

一、串口外设的基本概述 1、基本定义 串口通信,通过在通信双方之间以比特位(bit)的形式逐一发送或接收数据,实现了信息的有效传递。其通信方式不仅简单可靠,而且成本很低。 2、stm32的串口 下面是两个MCU的数据交互&…

NE555双音门铃实验

1脚为地。通常被连接到电路共同接地。 2脚为触发输入端。 3脚为输出端,输出的电平状态受触发器的控制,而触发器受上比较器6脚和下比较器2脚的控制。当触发器接受上比较器A1从R脚输入的高电平时,触发器被置于复位状态,3脚输出低电…

Redis分布式锁实现

概述 为什么要要分布式锁 在并发编程中,我们通过锁,来避免由于竞争而造成的数据不一致问题。 通常,我们以synchronized 、Lock来使用它。Java中的锁,只能保证在同一个JVM进程内中执行 如果需要在分布式集群环境下的话&#xff0…

软件设计师-错题笔记-网络基础知识

1. 解析: 1.子网划分相关知识: 在IPv4地址中,/27表示子网掩码为255.255.255.224,它将一个C类网络(默认子网掩码255.255.255.0)进一步划分 对于子网掩码255.255.255.224,其对应的二进制为111…

Fine-Tuning Llama2 with LoRA

Fine-Tuning Llama2 with LoRA 1. What is LoRA?2. How does LoRA work?3. Applying LoRA to Llama2 models4. LoRA finetuning recipe in torchtune5. Trading off memory and model performance with LoRAModel ArgumentsReferences https://docs.pytorch.org/torchtune/ma…

python打卡day29

类的装饰器 知识点回顾 类的装饰器装饰器思想的进一步理解:外部修改、动态类方法的定义:内部定义和外部定义 回顾一下,函数的装饰器是 :接收一个函数,返回一个修改后的函数。类也有修饰器,类装饰器本质上确…

十一、STM32入门学习之FREERTOS移植

目录 一、FreeRTOS1、源码下载:2、解压源码 二、移植步骤一:在需要移植的项目中新建myFreeRTOS的文件夹,用于存放FREERTOS的相关源码步骤二:keil中包含相关文件夹和文件引用路径步骤三:修改FreeRTOSConfig.h文件的相关…

2025 年十大网络安全预测

随着我们逐步迈向 2026 年,网络安全领域正处于一个关键的转折点,技术创新与数字威胁以前所未有的复杂态势交织在一起。 地缘政治环境进一步加剧了这些网络安全挑战,国际犯罪组织利用先进的技术能力来追求战略目标。 人工智能在这一不断演变…

Mac 环境下 JDK 版本切换全指南

概要 在 macOS 上安装了多个 JDK 后,可以通过系统自带的 /usr/libexec/java_home 工具来查询并切换不同版本的 Java。只需在终端中执行 /usr/libexec/java_home -V 列出所有已安装的 JDK,然后将你想使用的版本路径赋值给环境变量 JAVA_HOME,…

中级网络工程师知识点6

1.堆叠方式可以共享使用交换机背板带宽;级联方式可以使用双绞线将交换机连接在一起 2.光功率计是专门测量光功率大小的仪器,在对光缆进行检测时,通过在光缆的发送端和接收端分别测量光功率,进而计算出光衰情况。 3.光时域反射计…

动态规划——乌龟棋

题目描述 解题思路 首先这是一个很明显的线性dp的题目,很容易发现规律 数据输入 我们用 h[ N ] 数组存储每一个格子的分数 用 cnt [ ],数组表示每一中卡片的数目 1,状态表示 因为这里一个有4种跳跃方式可以选择 f[ i ][ a ][ b ][ c ][ d…