2012-01-31 89 views
2

在安裝lxml模塊後,我的腳本在原始版本的Ubuntu 10.10上成功運行。 (python 2.6.6)在Ubuntu中找不到(但已安裝)模塊

所以我編譯並手動安裝了pyhton2.7(源代碼)。我的劇本沒有了工作:

Error: ImportError: No module named lxml 

我回到python2.6.7(從源代碼),但錯誤發生保持。正確的Python版本(2.6.7)被調用。

注意:我刪除並重新安裝包python-lxml錯誤後多次。錯誤仍然存​​在:

sudo aptitude install pyhton-lxml 

我一定要執行某種神奇的劇本到Python找到模塊?

貝婁是命令的輸出:strace ./RunScriptPython.py(與python -v

$ strace ./RunScriptPython.sh 
execve("./RunScriptPython.sh", ["./RunScriptPython.sh"], [/* 38 vars */]) = 0 
brk(0)         = 0x9be3000 
access("/etc/ld.so.nohwcap", F_OK)  = -1 ENOENT (No such file or directory) 
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb770c000 
access("/etc/ld.so.preload", R_OK)  = -1 ENOENT (No such file or directory) 
open("/etc/ld.so.cache", O_RDONLY)  = 3 
fstat64(3, {st_mode=S_IFREG|0644, st_size=81621, ...}) = 0 
mmap2(NULL, 81621, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb76f8000 
close(3)        = 0 
access("/etc/ld.so.nohwcap", F_OK)  = -1 ENOENT (No such file or directory) 
open("/lib/libc.so.6", O_RDONLY)  = 3 
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\[email protected]\1\0004\0\0\0"..., 512) = 512 
fstat64(3, {st_mode=S_IFREG|0755, st_size=1421892, ...}) = 0 
mmap2(NULL, 1427880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x1d7000 
mmap2(0x32e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x157) = 0x32e000 
mmap2(0x331000, 10664, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x331000 
close(3)        = 0 
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76f7000 
set_thread_area({entry_number:-1 -> 6, base_addr:0xb76f78d0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 
mprotect(0x32e000, 8192, PROT_READ)  = 0 
mprotect(0x805c000, 4096, PROT_READ) = 0 
mprotect(0xf33000, 4096, PROT_READ)  = 0 
munmap(0xb76f8000, 81621)    = 0 
getpid()        = 3006 
rt_sigaction(SIGCHLD, {SIG_DFL, [CHLD], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 
geteuid32()        = 905975433 
brk(0)         = 0x9be3000 
brk(0x9c04000)       = 0x9c04000 
getppid()        = 3005 
stat64("/home/CEDROFINANCES/alexander.miro/dev/cedro/20120113_8P_Correcoes_linux/tools/bean_maker", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 
stat64(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 
open("./RunScriptPython.sh", O_RDONLY) = 3 
fcntl64(3, F_DUPFD, 10)     = 10 
close(3)        = 0 
fcntl64(10, F_SETFD, FD_CLOEXEC)  = 0 
rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0 
rt_sigaction(SIGINT, {0x8056690, ~[RTMIN RT_1], 0}, NULL, 8) = 0 
rt_sigaction(SIGQUIT, NULL, {SIG_DFL, [], 0}, 8) = 0 
rt_sigaction(SIGQUIT, {SIG_DFL, ~[RTMIN RT_1], 0}, NULL, 8) = 0 
rt_sigaction(SIGTERM, NULL, {SIG_DFL, [], 0}, 8) = 0 
rt_sigaction(SIGTERM, {SIG_DFL, ~[RTMIN RT_1], 0}, NULL, 8) = 0 
read(10, "#!/bin/sh\nrm -rf ../../broker_co"..., 8192) = 325 
open("../../broker_communication/beans", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 
fcntl64(3, F_GETFD)      = 0x1 (flags FD_CLOEXEC) 
getdents(3, /* 3 entries */, 32768)  = 48 
getdents(3, /* 0 entries */, 32768)  = 0 
close(3)        = 0 
stat64("/usr/local/sbin/rm", 0xbf926940) = -1 ENOENT (No such file or directory) 
stat64("/usr/local/bin/rm", 0xbf926940) = -1 ENOENT (No such file or directory) 
stat64("/usr/sbin/rm", 0xbf926940)  = -1 ENOENT (No such file or directory) 
stat64("/usr/bin/rm", 0xbf926940)  = -1 ENOENT (No such file or directory) 
stat64("/sbin/rm", 0xbf926940)   = -1 ENOENT (No such file or directory) 
stat64("/bin/rm", {st_mode=S_IFREG|0755, st_size=46756, ...}) = 0 
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb76f7938) = 3007 
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3007 
--- SIGCHLD (Child exited) @ 0 (0) --- 
open("../../broker_communication/fix_translation", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 
getdents(3, /* 3 entries */, 32768)  = 48 
getdents(3, /* 0 entries */, 32768)  = 0 
close(3)        = 0 
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb76f7938) = 3008 
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3008 
--- SIGCHLD (Child exited) @ 0 (0) --- 
stat64("/usr/local/sbin/python", 0xbf926940) = -1 ENOENT (No such file or directory) 
stat64("/usr/local/bin/python", {st_mode=S_IFREG|0755, st_size=4081553, ...}) = 0 
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb76f7938) = 3009 
wait4(-1, # installing zipimport hook 
import zipimport # builtin 
# installed zipimport hook 
# /usr/local/lib/python2.6/site.pyc matches /usr/local/lib/python2.6/site.py 
import site # precompiled from /usr/local/lib/python2.6/site.pyc 
# /usr/local/lib/python2.6/os.pyc matches /usr/local/lib/python2.6/os.py 
import os # precompiled from /usr/local/lib/python2.6/os.pyc 
import errno # builtin 
import posix # builtin 
# /usr/local/lib/python2.6/posixpath.pyc matches /usr/local/lib/python2.6/posixpath.py 
import posixpath # precompiled from /usr/local/lib/python2.6/posixpath.pyc 
# /usr/local/lib/python2.6/stat.pyc matches /usr/local/lib/python2.6/stat.py 
import stat # precompiled from /usr/local/lib/python2.6/stat.pyc 
# /usr/local/lib/python2.6/genericpath.pyc matches /usr/local/lib/python2.6/genericpath.py 
import genericpath # precompiled from /usr/local/lib/python2.6/genericpath.pyc 
# /usr/local/lib/python2.6/warnings.pyc matches /usr/local/lib/python2.6/warnings.py 
import warnings # precompiled from /usr/local/lib/python2.6/warnings.pyc 
# /usr/local/lib/python2.6/linecache.pyc matches /usr/local/lib/python2.6/linecache.py 
import linecache # precompiled from /usr/local/lib/python2.6/linecache.pyc 
# /usr/local/lib/python2.6/types.pyc matches /usr/local/lib/python2.6/types.py 
import types # precompiled from /usr/local/lib/python2.6/types.pyc 
# /usr/local/lib/python2.6/UserDict.pyc matches /usr/local/lib/python2.6/UserDict.py 
import UserDict # precompiled from /usr/local/lib/python2.6/UserDict.pyc 
# /usr/local/lib/python2.6/_abcoll.pyc matches /usr/local/lib/python2.6/_abcoll.py 
import _abcoll # precompiled from /usr/local/lib/python2.6/_abcoll.pyc 
# /usr/local/lib/python2.6/abc.pyc matches /usr/local/lib/python2.6/abc.py 
import abC# precompiled from /usr/local/lib/python2.6/abc.pyc 
# /usr/local/lib/python2.6/copy_reg.pyc matches /usr/local/lib/python2.6/copy_reg.py 
import copy_reg # precompiled from /usr/local/lib/python2.6/copy_reg.pyc 
import encodings # directory /usr/local/lib/python2.6/encodings 
# /usr/local/lib/python2.6/encodings/__init__.pyc matches /usr/local/lib/python2.6/encodings/__init__.py 
import encodings # precompiled from /usr/local/lib/python2.6/encodings/__init__.pyc 
# /usr/local/lib/python2.6/codecs.pyc matches /usr/local/lib/python2.6/codecs.py 
import codecs # precompiled from /usr/local/lib/python2.6/codecs.pyc 
import _codecs # builtin 
# /usr/local/lib/python2.6/encodings/aliases.pyc matches /usr/local/lib/python2.6/encodings/aliases.py 
import encodings.aliases # precompiled from /usr/local/lib/python2.6/encodings/aliases.pyc 
# /usr/local/lib/python2.6/encodings/utf_8.pyc matches /usr/local/lib/python2.6/encodings/utf_8.py 
import encodings.utf_8 # precompiled from /usr/local/lib/python2.6/encodings/utf_8.pyc 
Python 2.6.7 (r267:88850, Jan 30 2012, 14:30:06) 
[GCC 4.4.5] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
Traceback (most recent call last): 
    File "bean_maker.py", line 1, in <module> 
    from lxml import etree 
ImportError: No module named lxml 
# clear __builtin__._ 
# clear sys.path 
# clear sys.argv 
# clear sys.ps1 
# clear sys.ps2 
# clear sys.exitfunc 
# clear sys.exc_type 
# clear sys.exc_value 
# clear sys.exc_traceback 
# clear sys.last_type 
# clear sys.last_value 
# clear sys.last_traceback 
# clear sys.path_hooks 
# clear sys.path_importer_cache 
# clear sys.meta_path 
# clear sys.flags 
# clear sys.float_info 
# restore sys.stdin 
# restore sys.stdout 
# restore sys.stderr 
# cleanup __main__ 
# cleanup[1] encodings 
# cleanup[1] site 
# cleanup[1] abc 
# cleanup[1] _codecs 
# cleanup[1] _warnings 
# cleanup[1] zipimport 
# cleanup[1] encodings.utf_8 
# cleanup[1] codecs 
# cleanup[1] signal 
# cleanup[1] posix 
# cleanup[1] encodings.aliases 
# cleanup[1] exceptions 
# cleanup[2] copy_reg 
# cleanup[2] posixpath 
# cleanup[2] errno 
# cleanup[2] _abcoll 
# cleanup[2] types 
# cleanup[2] genericpath 
# cleanup[2] stat 
# cleanup[2] warnings 
# cleanup[2] UserDict 
# cleanup[2] os.path 
# cleanup[2] linecache 
# cleanup[2] os 
# cleanup sys 
# cleanup __builtin__ 
# cleanup ints: 18 unfreed ints 
# cleanup floats 
[{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 3009 
--- SIGCHLD (Child exited) @ 0 (0) --- 
read(10, "", 8192)      = 0 
exit_group(1)       = ? 
+1

發生了什麼,如果你試圖從Python的外殼導入此模塊? – Denis 2012-01-31 16:49:33

+0

同樣的事情! :( – miro 2012-01-31 17:05:00

回答

3

爲了測試我的診斷(下圖)是正確的,你可以嘗試運行

/usr/bin/python ./RunScriptPython.py 

(它應該工作)


請注意,在您發佈的輸出中:

import site # precompiled from /usr/local/lib/python2.6/site.pyc 

導入正在尋找/usr/local/lib/python2.6。這是而不是這是Ubuntu系統默認的python版本。這是本地安裝。

當您安裝python-lxml軟件包時,它安裝在/usr/lib/python2.6/中,可以通過在/ usr/bin中找到的Ubuntu系統默認版本的Python來訪問,而不是/ usr/local/bin版本的Python似乎正在運行。

除非您因爲某些原因需要/ usr/local版本的python,否則最簡單的解決方案是卸載它並使用/ usr/bin版本的python。

+0

你說得對,謝謝! – miro 2012-01-31 17:47:54

0

Aptitude僅爲您的分發標準Python(2.6.6)安裝python-lxml。如果你想爲手動安裝的Python提供lxml,你需要爲每個版本的Python安裝它。請參閱this SO answer最簡單的方法是使用easy_installpip(兩者都可以直接從PyPI下載包,就像aptitude,但是對於Python包)。

因此,在安裝PIP或分配後:

easy_install-2.7 lxml 
/path/to/python2.7 /path/to/pip install lxml 
相關問題