在 FRDC 的 8 GPU 服务器上,在 import caffe
后,在 ipython 中一直无法补全 caffe 的函数。研究了一下,终于解决了这个问题。
环境配置
- Centos 7
- Caffe
问题
- 个人用户目录下有一 caffe 库,将其添加进
PYTHONPATH
后,无法有效调用。 - 尝试将其他用户下的 caffe 路径添加进
PYTHONPATH
,依然无法有效调用。 - 在
PYTHONPATH
中删除所有 caffe 有关的路径,依然可以import caffe
,但无法有效调用。
分析
- 针对问题 3,使用
caffe.__file__
可以查看所调用 caffe 的文件地址,发现调用的是 caffe2 库下的一个 caffe 文件夹。这显然是不对的。由于 python 在其PYTHONPATH
中依次向后查找调用库,当查找到第一个后,就使用第一个路径中的库,因此如果后面的PYTHONPATH
中也包含某个库的话,后面的库就不会被调用。因此,我们需要将 caffe 的路径放在 caffe2 路径的前面。 - 针对问题 1,由于我在
/home/taoxuan/
路径下有一个 caffe 库,因此将其添加进PYTHONPATH
,但无法有效调用。将其从PYTHONPATH
中删除后,使用caffe.__file__
却依然指向此 caffe 库,遂将此库改名。 - 针对问题 2,将其他用户的 caffe 路径添加进
PYTHONPATH
后,依然正确调用,个人猜测是由于权限的问题。
解决方案
将其他用户下的有效 caffe 库拷贝至个人目录下,更改所有者及组,sudo chown -R taoxuan:taoxuan /path/to/caffe
。然后将此库的路径添加进 PYTHONPATH
,这样就可以有效调用。