Python sudo pip3安装numpy不尊重~/.numpy-site.cfg

Python sudo pip3安装numpy不尊重~/.numpy-site.cfg,python,numpy,scipy,pip,sudo,Python,Numpy,Scipy,Pip,Sudo,我正在尝试使用pip3在python3上安装numpy和scipy。我想使用MKL,所以我在~/.numpy site.cfg中指定了同样多的内容(如建议和所示): 然后,我通过安装numpy(成功) 但是,MKL不会显示在配置中 >>> np.show_config() ... mkl_info: NOT AVAILABLE ... 安装scipy随后失败(如预期的那样),原因是 然而,当我在同一台机器上的virtualenv中安装numpy和scipy而不做任何更改时

我正在尝试使用pip3在python3上安装numpy和scipy。我想使用MKL,所以我在
~/.numpy site.cfg
中指定了同样多的内容(如建议和所示):

然后,我通过安装numpy(成功)

但是,MKL不会显示在配置中

>>> np.show_config()
...
mkl_info:
  NOT AVAILABLE
...
安装scipy随后失败(如预期的那样),原因是

然而,当我在同一台机器上的virtualenv中安装numpy和scipy而不做任何更改时,会找到MKL,scipy工作正常

我的第一个猜测是sudo没有拾取
$HOME
,但是
sudo echo$HOME
正确返回了我的主目录


出什么问题了?

事实证明,我的猜测是正确的
sudo
没有使用正确的
$HOME
sudo echo$HOME
起作用,因为bash在调用sudo运行命令之前扩展了
$HOME

不过,下面的测试成功了:

# In test.sh
echo "$HOME"
现在我明白了

$ sudo bash test.sh
/root
确认
$HOME
不正确。事实证明,在/etc/sudoers中设置了一系列设置(总是设置home和env_reset),这意味着
sudo-ebash test.sh
也没有效果

我终于安装了它

$ sudo HOME=/path/to/my/home pip3 install numpy

工作正常。

确保您使用的python可执行文件与
pip3
命令中使用的相同(例如,
head-n1`哪个pip3`
应该告诉您)。或者确保使用正确的pip进行安装:
sudo python3-m pip install numpy
或任何您使用的python可执行文件。您不使用Anaconda的原因是什么?不建议使用pip3安装numpy。你没有碰巧有一个
站点.cfg
在某个地方有空的mkl信息吗?@Evert-Nope,我使用的是正确的pip3-我检查了
哪个
。我也没有一个site.cfg放在任何地方…@maxymoo不推荐?这是我第一次听到这个。。。但为了回答你的问题,我没有使用Anaconda,因为我想定制scipy到MKL的链接,而不是使用Anaconda附带的默认ATLAS和BLAS。我后来发现这在RHEL7机器上有效,但在Ubuntu 14.04或16.04上无效。我仍然不知道如何让它为Ubuntu工作。我刚从源代码安装完。。。
# In test.sh
echo "$HOME"
$ sudo bash test.sh
/root
$ sudo HOME=/path/to/my/home pip3 install numpy