繁体   English   中英

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

[英]Python 2.7 imports module from wrong location

我在使用Ubuntu 2.04的Python 2.7.6,并且正在尝试导入openpyxl。 我通过sudo pip install openpyxl --upgrade --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

任何帮助,谢谢,多米尼克

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

sys.path仅覆盖$PYTHONPATH变量,不向您显示$PATH的内容。

我能够使它起作用

  1. 通过ubuntus软件包管理器删除旧的openpyxl软件包。
  2. 使/usr/local/lib/python2.7/dist-packages对所有人都可读,奇怪的是以前不是这种情况-而且我没有注意到。

感谢所有为我提供帮助的人。 多米尼克

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM