簡體   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