首先,我要说virtualenv在这里基本上是一个需求,因为Nix还没有被开发团队的其他成员使用。这个excellent guide on Python in Nix并没有深入到这个特定的问题。你知道吗
在某些情况下,我可以更新LD_LIBRARY_PATH
,但由于Python的动态特性,它变得相当乏味,并且可能容易出错(特定的分支可能会触发使用以前未包含在LD_LIBRARY_PATH
中的库):
shellHook = ''
export LD_LIBRARY_PATH=${mysql57}/lib:${gcc6}/lib:$LD_LIBRARY_PATH
'';
更糟糕的是,这里的${ggc6}/lib
不适合我,因为我需要库(李白。所以)在*-gcc-6.4.0-lib/lib
目录下,而不是*-gcc-6.4.0/lib
目录下,我不知道如何引用前者。你知道吗
$ echo $LD_LIBRARY_PATH
/nix/store/x3x3si0pc3w0vam9jj308b0qhcv7zlg2-mysql-5.7.19/lib:/nix/store/mc8p626zjk9zlgji1i8f85nax4c62nrj-gcc-wrapper-6.4.0/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64
find for libatomic的某些输出:
/nix/store/rww78vdn2rkayrnqsjl8ib5iq2vfm3sw-gcc-6.4.0/lib/libatomic.a
/nix/store/klqzvvcy1xyjjflmf7agryayc4s72jg2-gcc-6.4.0-lib/lib/libatomic.so.1
/nix/store/klqzvvcy1xyjjflmf7agryayc4s72jg2-gcc-6.4.0-lib/lib/libatomic.so
/nix/store/klqzvvcy1xyjjflmf7agryayc4s72jg2-gcc-6.4.0-lib/lib/libatomic.la
/nix/store/klqzvvcy1xyjjflmf7agryayc4s72jg2-gcc-6.4.0-lib/lib/libatomic.so.1.2.0
我不太使用nixpkgs Python基础结构,所以我不确定是否有办法消除设置
LD_LIBRARY_PATH
。设置建议:lib.makeLibraryPath
来减少这个过程的繁琐。如果您知道所有可能需要的库(大部分)都在buildDepends
中,那么您可以使用lib.makeLibraryPath (buildDepends ++ [ anything else ])
。你知道吗pkgs.gcc6
不是“原始”GCC派生。您可以使用gcc6.cc.lib
,或者,如果您使用的是makeLibraryPath
,那么只要gcc6.cc
就足够了(因为makeLibraryPath
会自动发现lib
输出是要查看的正确输出)。你知道吗相关问题 更多 >
编程相关推荐