Python 2.7从错误的位置导入模块

时间:2016-02-19 15:23:17

标签: python python-2.7 python-module openpyxl

我在Python 2.7.6 un Ubuntu 14.04上,我正在尝试导入openpyxl。我通过sudo pip install openpyxl --upgrade愤怒到最新版本,pip show openpyxl提供了以下输出:

pip show openpyxl
---
Name: openpyxl
Version: 2.3.3
Location: /usr/local/lib/python2.7/dist-packages
Requires: 

然而,当我在python内部之后,我import openpyxl之后似乎是从其他位置加载它:/usr/lib而不是/usr/local/lib

openpyxl.__version__
'1.7.0'
openpyxl.__file__
'/usr/lib/pymodules/python2.7/openpyxl/__init__.pyc'

我已将$PYTHONPATH设置为/usr/local/lib/python2.7/dist-packages

在查看sys.path时,我得到了这个输出:

['', '/usr/local/lib/python2.7/dist-packages',... and 12 other locations]

它似乎首先有我想要的位置。然而,错误的模块被加载了。

修改

$PATH的内容:

/misc/software-lin/lmbsoft/build/x86_64-gcc4.8/release/bin:/misc/software-lin/lmbsoft/build/x86_64-gcc4.8/debug/bin:/misc/software-lin/lmbsoft/build/x86_64-gcc4.8/bin:/home/maid/phd/3rdpartySoft/art-2009-03-12/bin:/home/maid/phd/3rdpartySoft/ANTs-1.9.x-Linux/bin:/misc/software-lin/lmbsoft/build/x86_64-gcc4.8/release/bin:/misc/software-lin/lmbsoft/build/x86_64-gcc4.8/debug/bin:/misc/software-lin/lmbsoft/build/x86_64-gcc4.8/bin:/home/maid/phd/3rdpartySoft/art-2009-03-12/bin:/home/maid/phd/3rdpartySoft/ANTs-1.9.x-Linux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:.:/home/maid/bin:/misc/software-lin/matlabR2015a/bin:/home/maid/phd/3rdpartySoft/nifty_reg-1.3/niftyreg_install/bin:/misc/software-lin/lmbsoft/cudatoolkit-3.2.16-x86_64/cuda/bin:/misc/database/cv2/local/bin:/misc/software-lin/vibez/bin:/usr/lib/jvm/java-6-openjdk/jre/bin:/misc/software-lin/vivi:/home/maid/localsoft/voreen/voreen-src-3.0.1-unix/bin/:/home/maid/tmp/ij146/ImageJ:.:/home/maid/bin:/misc/software-lin/matlabR2015a/bin:/home/maid/phd/3rdpartySoft/nifty_reg-1.3/niftyreg_install/bin:/misc/software-lin/lmbsoft/cudatoolkit-3.2.16-x86_64/cuda/bin:/misc/database/cv2/local/bin:/misc/software-lin/vibez/bin:/usr/lib/jvm/java-6-openjdk/jre/bin:/misc/software-lin/vivi:/home/maid/localsoft/voreen/voreen-src-3.0.1-unix/bin/:/home/maid/tmp/ij146/ImageJ

任何帮助表示赞赏, 谢谢,多米尼克

2 个答案:

答案 0 :(得分:0)

我认为,如果您echo $PATH,您会发现在/usr/lib之前正在搜索/usr/local/lib。因为它首先在/usr/lib中找到它,所以它不会继续查看/usr/local/lib

sys.path仅涵盖$PYTHONPATH变量,并未向您显示$PATH的内容。

答案 1 :(得分:0)

我能够通过

使其工作
  1. 通过ubuntus包管理器删除旧的openpyxl包。
  2. 使/usr/local/lib/python2.7/dist-packages对所有人都可读,这在以前情况并非如此 - 我没有注意到它。
  3. 感谢所有努力帮助我的人。 星