作为我的问题的例子,我的~/.bashrc文件包含以下几行:
export LD_LIBRARY_PATH=/opt/intel/mkl/lib/ia32:$LD_LIBRARY_PATH
export LD_PRELOAD=/opt/intel/mkl/lib/ia32/libmkl_core.so
Run Code Online (Sandbox Code Playgroud)
这样 Numpy (Python) 就可以找到它需要运行的库,因为它是使用 MKL 和英特尔编译器构建的。这个工作流程不是最好的,但这是另一回事。
我的问题是,~/.bashrc当我使用“sudo”(但不是 root)运行程序时,如何传递任意变量(如 中的变量)?
目前,如果我运行:
sudo python -c "import numpy"
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
ImportError: libimf.so: cannot open shared object file: No such file or directory*
Run Code Online (Sandbox Code Playgroud)
一些建议作为sudo -i或sudo -E不会改变这里的任何内容。
编辑:
我无法回答我的问题(分数不够:D)但我会在这里发表评论,希望还有其他 Linux 新手对sudo陷阱感到疑惑。
[只是暂时的!] 这对我有用(~/.bashrc):
alias sudo='sudo env PATH=$PATH VAR1=SOME_VALUE VAR2=SOME_VALUE...'
Run Code Online (Sandbox Code Playgroud)