在 Windows 上,使用 cabal 安装的软件包似乎在 ghc/ghci 中不可用

2024-04-12

我在相当标准的 Windows 10 x64 系统上运行最新版本的 Haskell Platform 8.6.3。

现在,我正束手无策地从 Hackage 安装软件包以使其可靠地工作。将我的问题归因于本地配置问题,我已采取了所有步骤,但没有破坏我的 Windows 安装。我已经卸载并重新安装了 Hackage,重新启动,在任何隐藏目录或其他目录中搜索了所有最后一个配置文件,删除了每个显然与 Haskell 相关的注册表项,其中大多数都多次,但都无济于事:

使用 cabal 安装的软件包似乎无法在 ghci、WinGHCI 下使用,无论我做什么,都无法在 ghci 下与 (:m) 交互加载,或者在 WinGHCI 下使用 ghc 进行编译。

以下是一些症状。有什么建议么?

#cabal new-update
Downloading the latest package list from hackage.haskell.org
To revert to previous state run:
    cabal new-update 'hackage.haskell.org,2019-04-02T19:24:19Z'

#cabal new-install --lib vector
Resolving dependencies...
Up to date

#ghci
Prelude> :m Data.Vector

<no location info>: error:
    Could not find module ‘Data.Vector’
    Perhaps you meant Data.Functor (from base-4.12.0.0)

#ghc -O -optc-O3 -funfolding-use-threshold=16 -fexcess-precision -Wall -Wno-type-defaults -Wno-unused-imports -Wno-unused-top-binds -rtsopts "P663.hs"
[1 of 1] Compiling Main             ( P663.hs, P663.o )

P663.hs:54:1: error:
    Could not find module ‘Data.Vector.Unboxed’
    Use -v to see a list of the files searched for.
   |
54 | import           Data.Vector.Unboxed (Vector, (!))    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 #ghc-pkg list
C:\Program Files\Haskell Platform\8.6.3\lib\package.conf.d
    Cabal-2.4.0.1
    Win32-2.6.1.0
    array-0.5.3.0
    base-4.12.0.0
    binary-0.8.6.0
    bytestring-0.10.8.2
    containers-0.6.0.1
    deepseq-1.4.4.0
    directory-1.3.3.0
    filepath-1.4.2.1
    (ghc-8.6.3)
    ghc-boot-8.6.3
    ghc-boot-th-8.6.3
    ghc-compact-0.1.0.0
    ghc-heap-8.6.3
    ghc-prim-0.5.3
    ghci-8.6.3
    haskeline-0.7.4.3
    hpc-0.6.0.3
    hscolour-1.24.4
    integer-gmp-1.0.2.0
    libiserv-8.6.3
    mtl-2.2.2
    parsec-3.1.13.0
    pretty-1.1.3.6
    process-1.6.3.0
    rts-1.0
    stm-2.5.0.0
    template-haskell-2.14.0.0
    text-1.2.3.1
    time-1.8.0.2
    transformers-0.5.5.0
    xhtml-3000.2.2.1

#ghc-pkg list --user-package-db=C:\Users\Carl\AppData\Roaming\cabal\store\ghc-8.6.3\package.db
C:\Program Files\Haskell Platform\8.6.3\lib\package.conf.d
    Cabal-2.4.0.1
    Win32-2.6.1.0
    array-0.5.3.0
    base-4.12.0.0
    binary-0.8.6.0
    bytestring-0.10.8.2
    containers-0.6.0.1
    deepseq-1.4.4.0
    directory-1.3.3.0
    filepath-1.4.2.1
    (ghc-8.6.3)
    ghc-boot-8.6.3
    ghc-boot-th-8.6.3
    ghc-compact-0.1.0.0
    ghc-heap-8.6.3
    ghc-prim-0.5.3
    ghci-8.6.3
    haskeline-0.7.4.3
    hpc-0.6.0.3
    hscolour-1.24.4
    integer-gmp-1.0.2.0
    libiserv-8.6.3
    mtl-2.2.2
    parsec-3.1.13.0
    pretty-1.1.3.6
    process-1.6.3.0
    rts-1.0
    stm-2.5.0.0
    template-haskell-2.14.0.0
    text-1.2.3.1
    time-1.8.0.2
    transformers-0.5.5.0
    xhtml-3000.2.2.1

C:\Users\Carl\AppData\Roaming\cabal\store\ghc-8.6.3\package.db
    primitive-0.6.4.0
    vector-0.12.0.2

#set GHC_PACKAGE_PATH=C:\Users\Carl\AppData\Roaming\cabal\store\ghc-8.6.3\package.db;
#ghc-pkg list
C:\Program Files\Haskell Platform\8.6.3\lib\package.conf.d
    Cabal-2.4.0.1
    Win32-2.6.1.0
    array-0.5.3.0
    base-4.12.0.0
    binary-0.8.6.0
    bytestring-0.10.8.2
    containers-0.6.0.1
    deepseq-1.4.4.0
    directory-1.3.3.0
    filepath-1.4.2.1
    (ghc-8.6.3)
    ghc-boot-8.6.3
    ghc-boot-th-8.6.3
    ghc-compact-0.1.0.0
    ghc-heap-8.6.3
    ghc-prim-0.5.3
    ghci-8.6.3
    haskeline-0.7.4.3
    hpc-0.6.0.3
    hscolour-1.24.4
    integer-gmp-1.0.2.0
    libiserv-8.6.3
    mtl-2.2.2
    parsec-3.1.13.0
    pretty-1.1.3.6
    process-1.6.3.0
    rts-1.0
    stm-2.5.0.0
    template-haskell-2.14.0.0
    text-1.2.3.1
    time-1.8.0.2
    transformers-0.5.5.0
    xhtml-3000.2.2.1

C:\Users\Carl\AppData\Roaming\ghc\x86_64-mingw32-8.6.3\package.conf.d
    (no packages)
C:\Users\Carl\AppData\Roaming\cabal\store\ghc-8.6.3\package.db
    primitive-0.6.4.0
    vector-0.12.0.2

# ghci
GHCi, version 8.6.3: http://www.haskell.org/ghc/  :? for help
Prelude> :m Data.Vector
Prelude Data.Vector> toList $ empty

Access violation in generated code when reading 0xffffffffffffffff

 Attempting to reconstruct a stack trace...

   Frame        Code address
 * 0x7e5dd90    0x3d7d618 C:\Program Files\Haskell Platform\8.6.3\bin\ghc.exe+0x397d618

所以看起来你通过设置解决了你的问题GHC_PACKAGE_PATH, 正确的?您可能希望提交有关该问题的错误。

第二个问题,运行时“读取时生成的代码中的访问冲突”错误似乎记录在此处:

https://github.com/commercialhaskell/stack/issues/3765 https://github.com/commercialhaskell/stack/issues/3765

https://gitlab.haskell.org/ghc/ghc/issues/13112 https://gitlab.haskell.org/ghc/ghc/issues/13112

据说是路过-fexternal-interpreterghci 是一种解决方法。您可能需要手动编辑ghc/ghcishim 脚本,以确保始终传递该标志,直到修复错误为止。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 上,使用 cabal 安装的软件包似乎在 ghc/ghci 中不可用 的相关文章

  • 操作系统什么时候清除进程的内存

    进程在某些操作系统上成功或异常终止 操作系统何时决定擦除分配给该进程的内存 数据 代码等 在退出时或当它想为新进程分配内存时 这个清除内存分配过程在所有操作系统 winXP Win7 linux Mac 上都相同吗 据我了解 页表具有该进程
  • SC创建binpath错误

    我正在尝试在 PowerShell 中运行以下命令 sc create StrongSwan binpath C Users Kanishk Desktop Strong Strong stronswan strongswan 5 6 3
  • 如何正确使用和实例化现有预览处理程序

    我正在尝试使用现有的预览处理程序来显示文件的预览 我编写了一个简单的测试程序 以 1 查找给定文件的预览处理程序的 CLSID 2 实例化预览处理程序 3 通过流或文件初始化它 4 在基本窗口上渲染预览 这有效 或多或少 It works
  • Git 子模块:[电子邮件受保护]:权限被拒绝(公钥)。致命:无法从远程存储库读取

    我有一个问题git submodule update init remote 我收到错误 权限被拒绝和克隆失败 但我将 SSH 密钥添加到了我的 github 存储库中 我可以拉 推 git 克隆 我拥有所有需要的访问权限 我使用操作系统
  • GOPATH值设置

    我用go1 3 1 windows amd64 msi安装go 安装后GOROOT是默认设置 我发现 D Programs Go bin 在 PATH 中 然后我创建一个 GOPATH 环境变量 使用 go get 命令时 出现错误 软件包
  • 在远程桌面上使用 Powershell 获取 Windows DisplayLanguage

    我正在尝试通过 powershell 获取 Windows 显示语言设置远程计算机 我尝试了 Get WinUserLanguageList 但这会返回所有语言的列表 Get WinSystemLocale 和 Get Culture 也不
  • 使用 CreateRestrictedToken(LUA_TOKEN) 从提升的进程创建低/中进程

    我正在尝试从提升的进程创建中或低完整性进程 我知道还有其他类似的问题 但它们主要关注使用资源管理器或任务计划程序等解决方法 我想坚持使用CreateRestrictedToken CreateProcessAsUser 我认为一定可以以某种
  • 我如何移动粘性/捕捉 wpf 窗口

    当我移动 主 窗口时 我想移动两个或更多粘性窗口 我想做这样的事情 private void MainWindow PreviewMouseMove object sender MouseEventArgs e if e LeftButto
  • Node.js + Socket.io + Windows 7 / 8?

    我一直在到处寻找 但似乎找不到解决方案 是否可以在 Windows 7 上的 Node js 上安装 Socket io 如果没有 是否有某种替代方案 或者您知道未来有任何 Windows 支持吗 通常使用 Node js 包管理器 但是我
  • OSError: [WinError 193] %1 不是有效的 Win32 应用程序,同时使用 CTypes 在 python 中读取自定义 DLL

    我正在尝试编写用 python 封装 C 库的代码 我计划使用 CTypes 来完成此操作 并使用 Visual Studio 来编译我的 DLL 我从一个简单的函数开始 在 Visual Studio 内的标头中添加了以下内容 然后将其构
  • 在 Yesod 生态系统中,对某些文本进行 urlencode 的最佳方式是什么?

    我想对一些文本进行 url 编码 例如 用 20 替换每个空格等 我找到了 HTTP Network HTTP Base urlEncode 并且可以使用它 但我想知道是否还有其他通常在 Yesod 生态系统中使用的东西 不幸的是 由于 U
  • “此应用程序已请求运行时以异常方式终止它”的原因是什么?

    Visual C 运行时抛出一个常见错误 此应用程序已请求运行时以异常方式终止它 请联系应用程序的支持团队以获取更多信息 该错误消息实际上是什么意思mean 让我用一个比喻来准确地解释我的问题 如果我看到一条消息 异常 访问冲突 0xc00
  • fprintf() 线程安全吗?

    我正在为野人就餐问题的某些变量编写一个 C 解决方案 现在 我创建线程 每个线程都将 FILE 获取到同一个调试文件 在线程内我正在使用 fprintf 进行一些打印 打印的语句不受任何类型的互斥锁等保护 我没有在调试文件中观察到任何交错行
  • Haskell 入门

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 几天来 我一直试图理解 Haskell 中的函数式编程范例 我通过阅读教程和观看截屏视频
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • Traversable 类型类的用途

    有人可以向我解释一下类型类的目的是什么吗Traversable 类型类定义是 class Functor t Foldable t gt Traversable t gt where So Traversable is a Functor
  • Haskell Stack 从 github 安装包依赖项

    是否可以使用 Haskell 堆栈从 github 安装软件包的版本 例如在一个 cabal or a stack yaml文件 如何在 git repo branch revision 上指向依赖项 对于堆栈 The 的文档stack y
  • Haskell:Data.Numbers.Primes 库在哪里?

    我尝试导入 Data Numbers Primes import Data Numbers Primes 伦哈斯克尔给了我 5 hs 1 8 Could not find module Data Numbers Primes Use v t
  • 用于遇到 [...] 的 Haskell Parsec 解析器

    我正在尝试使用 Parsec 在 Haskell 中编写一个解析器 目前我有一个可以解析的程序 test x 1 2 3 end 执行此操作的代码如下 testParser do reserved test v lt identifier
  • QuickCheck是否可以生成任意函数

    我试图为身份编写一个 QuickCheck 测试 f y f y 我最初的计划是编写一个返回函数和整数的任意生成器 具有签名Gen Int gt Int Int 并在prop DollerDoesNothing使用 不使用测试该功能应用程序

随机推荐

  • 使用锚点提交表单安全吗?

    我在某处读到 使用锚标记提交表单不太安全 所以这就是我的问题 使用锚标记而不是安全吗
  • Curl 同时下载和上传同一文件

    不确定是否可能 但我一直在尝试使用curl 从 HTTP 位置下载文件并将其输出到 FTP 服务器上 如果这实际上可能的话 我真的很希望得到一些帮助 curl http example com down curl T ftp mysite
  • 捕获 Flask API 中引发的自定义异常。引发的所有异常最终都会出现 500 错误 [重复]

    这个问题在这里已经有答案了 我希望能够在 API 中引发验证和其他异常 并在包装 视图中捕获它们 该视图将以 JSON 形式返回错误消息 我想我可以使用这样的东西 例外 class APIException Exception def in
  • AWS 批处理始终为每个作业启动新的 ec2 实例

    我已经设置了一个批处理环境 托管计算环境 作业队列 职位定义 实际工作 docker 容器 执行大量视频编码 因此占用了大部分 CPU 该过程本身需要几分钟 初始化所有编码器大约需要 5 分钟 理想情况下 我希望每个实例执行一项作业 这样编
  • 可以使用 OnDeserializedAttribute 代替 IDeserializationCallback 接口吗?

    正如 MSDN 所说here http msdn microsoft com en us library system runtime serialization ondeserializedattribute aspx 它可以 但我花了
  • 与 JPA OneToMany 映射的只读关联

    我有一个与另一个实体关联的事务实体 因此在案例中不应更新关联实体 例如 案例 gt 用户 案例由用户拥有 反之 用户可以拥有许多关联的案例 使用 OneToMany 和 JoinColumn JPA 注释来映射关联 我还尝试将 User 实
  • 如何从外部资源将库连接到智能合约?

    pragma solidity 0 4 15 import ERC20 sol import SafeMath sol 如何连接安全数学 sol来自外部 非本地的 资源 虽然詹姆斯的答案是有效的 但我不建议从在线存储库链接合同的依赖项 这是
  • 如何使用 Spring Security 为特定端点添加 HTTP 基本身份验证?

    我有一个带有 Spring Security 的 Spring Boot 应用程序 一个新的端点 health进行配置 以便可以通过基本 HTTP 身份验证进行访问 目前的HttpSecurity配置如下 Override protecte
  • woocommerce 显示类别/子类别/产品

    有没有办法在 woocommerce 中显示主要类别及其子类别及其产品 php 还是简码 我尝试过一些条件格式 但没有任何结果 您有两个默认的短代码可用于显示产品类别 定义了特定的父类别 以显示子类别 和特定类别中包含的产品 要显示顶级类别
  • 在 Vim 中轻松地将函数参数重新格式化为多行

    特别是在编辑旧版 C 代码时 我经常发现自己手动重新格式化如下内容 SomeObject doSomething firstType argumentOne secondType argumentTwo thirdType argument
  • ejabberd如何编译新模块

    Here http www ejabberd im node 2872我找到了代码 erlc I ejabberd 2 1 13 lib ejabberd 2 1 13 include pa ejabberd 2 1 13 lib ejab
  • 子进程 popen stdout 锁定?

    您好 在使用 subprocess Popen 时 读取标准输出时遇到一些问题 daniel desktop python V Python 2 7 3 这是代码 注释代码是我尝试过的一些事情 import subprocess RUN h
  • 通过浏览器调用WCF服务方法

    我有一个使用基本 http 绑定的 WCF 服务 如何通过浏览器调用其操作 方法 您需要将 WebGetAttribute 添加到您的方法中 如下例所示 OperationContract WebGet UriTemplate places
  • 当我单击搜索按钮时,防止 ProgressDialog 被关闭(Android)

    在长时间运行的操作中 我显示了一个弹出对话框 由ProgressDialog以防止其他操作发生 我已将其设置为不可取消setCancelable false 所以我无法使用后退按钮关闭它 但令人惊讶的是 搜索 硬件按钮会关闭该对话框 更准确
  • 如何确定现有应用程序的安装范围?

    我有一个基于的安装程序WixUI Advanced允许用户选择安装范围 每个用户或机器范围 升级时 安装了较低版本的现有应用程序 我想隐藏安装范围屏幕并自动选择他们上次选择的安装范围 如何判断先前安装使用的安装范围 Edit 查看我的 MS
  • Android 代码从 ContentProvider 类而不是 Main 类开始

    昨天我发布了一个类似的问题 关于为什么我的代码从我的内容提供程序类而不是主类开始 我收到了一些反馈 我已经更新了这些反馈 但问题仍然存在 代码从 ContentProvider 类而不是主类开始班级 我已经使用调试器运行了代码 令人费解的是
  • 从字符串中过滤非数字

    仅使用快速代码 我无法弄清楚如何获取 555 555 5555 并仅返回数值并获得 5555555555 我需要删除所有括号 空格和破折号 我能找到的唯一例子是 Objective C 中的 它们似乎都使用 trim 方法 看起来好像 sw
  • 使用 Apple 登录 - Ionic 3

    我正在尝试使用以下插件和包装器在我的 ionic 3 项目上实现苹果登录 ionic cordova plugin add cordova plugin sign in with apple npm i save ionic native
  • 使用自动布局时如何调整 CALayer 的锚点?

    Note 自从提出这个问题以来 事情已经发生了变化 看here http revealapp com blog constraints and transforms html以获得近期的良好概述 在自动布局之前 您可以通过存储框架 设置锚点
  • 在 Windows 上,使用 cabal 安装的软件包似乎在 ghc/ghci 中不可用

    我在相当标准的 Windows 10 x64 系统上运行最新版本的 Haskell Platform 8 6 3 现在 我正束手无策地从 Hackage 安装软件包以使其可靠地工作 将我的问题归因于本地配置问题 我已采取了所有步骤 但没有破