我正在尝试使用pip3在python3上安装numpy和scipy。我想使用MKL,所以我在~/.numpy-site.cfg
中已经指定了(建议here和here):
[mkl]
library_dirs = /opt/intel/mkl/lib/intel64
include_dirs = /opt/intel/mkl/include
mkl_libs = mkl_rt
lapack_libs =
extra_compile_args = -march=native
然后我通过
安装numpy(成功)$ sudo pip3 install numpy
但是,MKL没有出现在配置中!
>>> np.show_config()
...
mkl_info:
NOT AVAILABLE
...
随后安装scipy失败(按预期)
numpy.distutils.system_info.NotFoundError: no lapack/blas resources found
然而,当我在同一台机器上的virtualenv中安装numpy和scipy而没有改变任何其他内容时,发现MKL ,并且scipy工作正常。
我的第一个猜测是sudo没有拿起$HOME
,但是sudo echo $HOME
正确地返回了我的主目录。
可能出现什么问题?
答案 0 :(得分:0)
事实证明我的猜测确实是正确的。 sudo
不是使用权限$HOME
。 sudo echo $HOME
有效,因为bash在调用sudo运行命令之前扩展了$HOME
。
以下测试可以解决这个问题:
# In test.sh
echo "$HOME"
现在我得到了
$ sudo bash test.sh
/root
确认$HOME
不正确。事实证明,在/ etc / sudoers(always_set_home和env_reset)中设置了一堆设置,这意味着sudo -E bash test.sh
也没有效果。
我终于用
安装了它$ sudo HOME=/path/to/my/home pip3 install numpy
有效。