【发布时间】:2017-10-25 16:54:05
【问题描述】:
我收到此错误:
Configuring cpython-3.4.0...
Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2: The pkg-config package 'python-3.4'
is required but it could not be found.
当我在设置 Stack 环境以测试 Haskell 的 CPython 模块的过程中运行 stack build(这些 Haskell 特定的详细信息可能不相关)时。
我通过 Nix 安装了 Python 3.4。 Nix 选择的命令是python3.4,所以我将python-3.4 的别名设置为python3.4(通过将alias python-3.4=python3.4 添加到我的.bashrc 文件中)。但是pkg-config 仍然给我同样的错误。
我使用的是 KUbuntu(即带有 KDE 的 Ubuntu)版本 16.04。
--
根据格雷森先生的评论,变量 $PKG_CONFIG_PATH 似乎为空:
jeff@jbb-lenovo:/nix$ echo $PKG_CONFIG_PATH
jeff@jbb-lenovo:/nix$
这里是python-3.4.pc的路径和内容:
jeff@jbb-lenovo:/nix$ find . -name "python-3.4.pc"
./store/q5p46zmky5z6w54bh8gaqbgwkdbqk4qg-python3-3.4.7/lib/pkgconfig/python-3.4.pc
jeff@jbb-lenovo:/nix$ cat ./store/q5p46zmky5z6w54bh8gaqbgwkdbqk4qg-python3-3.4.7/lib/pkgconfig/python-3.4.pc
# See: man pkg-config
prefix=/nix/store/q5p46zmky5z6w54bh8gaqbgwkdbqk4qg-python3-3.4.7
exec_prefix=${prefix} libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Python
Description: Python library
Requires:
Version: 3.4
Libs.private: -lpthread -ldl -lcrypt -lncurses -lutil
Libs: -L${libdir} -lpython3.4m
Cflags: -I${includedir}/python3.4m
【问题讨论】:
-
你是如何制作别名的?你能把你的
python-3.4.pc文件的内容和完整路径,以及$PKG_CONFIG_PATH的完整内容贴出来吗? -
已发布。谢谢你,格雷森先生!
-
听起来你只是在普通的 Ubuntu shell 中运行
stack build,而不是在nix-shell中运行,或者在使用nix-build构建派生的构建器中运行。使用 Nix 构建软件的一般方法是为其派生创建一个表达式,然后运行 nix-build来构建该派生。依赖项没有“安装”(这是用户环境问题),它们被添加到stdenv.mkDerivation参数中的buildInputs列表中。 -
在您的用户环境中安装某些东西实际上是为了完成软件,而不是您将用于构建其他软件的库。
-
除了安装 Python 3.4 之外,我并没有尝试将 Nix 用于任何事情。你的意思是如果我这样做,我也必须使用 Nix for Stack?
标签: python-3.x cabal haskell-stack pkg-config nix