0

假设我有一个my_env包含大量二进制和 python 包的环境。

然后我这样做:

spack env activate my_env

然后我LD_LIBRARY_PATH将包含

$spack_root/var/spack/environments/my_env/.spack-env/view/lib

并将PYTHONPATH包含

$spack_root/var/spack/environments/my_env/.spack-env/view/lib/python3.9/site-packages

这意味着我可以通过其文件系统视图访问环境的包。到目前为止,一切都很好。

问题是PYTHONPATH它还包含包的显式路径,例如

/my_spack_packages/opt/linux-centos7-broadwell/gcc-10.2.0/py-numpy-1.20.1-2b7n6tawarpant2tdesz4mv2bcpbukna/lib/python3.9/site-packages
/my_spack_packages/opt/linux-centos7-broadwell/gcc-10.2.0/py-setuptools-50.3.2-n5jsh4xzjpfxgqjdevvwvo2jusc5l4rb/lib/python3.9/site-packages
/my_spack_packages/opt/linux-centos7-broadwell/gcc-10.2.0/py-pyparsing-2.4.7-igeoalsmtb26rpq7y5cavriorrquph4h/lib/python3.9/site-packages
/my_spack_packages/linux-centos7-broadwell/gcc-10.2.0/py-python-dateutil-2.8.0-mrysqsgig4qprxulqqd6ds2y5v6bvaha/lib/python3.9/site-packages
... [ a lot more here ] ...

在我看来,这些路径是多余的,因为 python 解释器已经可以通过

$spack_root/var/spack/environments/my_env/.spack-env/view/lib/python3.9/site-packages

小路。那么为什么它会被所有这些路径超载呢?加载环境时有没有办法删除它们?

注意:我想知道这是否是由于这对于RPATH是可能的LD_LIBRARY_PATH,但在我看来,RPATH这里没有必要,因为文件系统视图中也存在依赖项......

4

0 回答 0