【发布时间】:2017-11-07 13:18:10
【问题描述】:
我首先要说 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 在这里对我不起作用,因为我需要的库 (libatomic.so) 位于 *-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
libatomic 的 find 的一些输出:
/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
【问题讨论】: