我最近安装了Anaconda的Python发行版。然后我将以下行插入我的.bashrc
文件中:
export PATH=/home/karnivaurus/Libraries/Anaconda/bin:$PATH
因此,现在有两个python
二进制文件:一个在/usr/bin/
,一个在/home/karnivaurus/Libraries/Anaconda/bin
。
我还有一个python脚本,它尝试使用行caffe
导入名为import caffe
的模块。现在,如果我从终端运行python caffe
,脚本运行正常。但是,如果我在PyCharm中打开脚本,并将解释器设置为/home/karnivaurus/Libraries/Anaconda/bin/python
,则会出现以下错误:
ImportError: No module named caffe
基于这一切,我有两个问题......
如果我从终端运行python
命令,它会执行哪个二进制文件? /usr/bin
中的那个,或/home/karnivaurus/Libraries/Anaconda/bin
中的那个?我的直觉是它运行第一个,因为与PyCharm的行为不一致。在这种情况下,我如何强制我的系统使用Anaconda版本?
如果我安装了一个新软件包,例如pip install caffe
,那么它将安装在哪里?它会安装到/usr/local/lib/python2.7/site-packages
还是安装到/home/karnivaurus/Libraries/Anaconda/pkgs
?我怎样才能确定我的python
命令会知道在哪里找到新包裹?
谢谢!
答案 0 :(得分:2)
回答1 :
根据你的例子:export PATH=/home/karnivaurus/Libraries/Anaconda/bin:$PATH
/home/karnivaurus/Libraries/Anaconda/bin
首先出现,所以那里的python应该是要执行的那个。
但明确的答案取决于跑步的结果:which python
。
回答2 :
在Anaconda中,使用conda
代替pip
来安装软件包。使用pip install caffe
进行安装时,您将安装到/usr/local/lib/python2.7/site-packages
。
使用conda install caffe
安装到/home/karnivaurus/Libraries/Anaconda/pkgs
。
以上两个答案解释了为什么即使你pip install spam
打包,python
会说ImportError: No module named spam
。基本上你安装到普通的Python,但你尝试导入Anaconda的python。