在Ubuntu中找不到(但已安装)模块

时间:2012-01-31 16:15:25

标签: python ubuntu module

安装lxml模块后,我的脚本在原始版本的Ubuntu 10.10上成功运行。 (python 2.6.6)

所以我手动编译并安装了pyhton2.7(源代码)。我的脚本不再起作用了:

Error: ImportError: No module named lxml

我已经回到了python2.6.7(源代码中),但错误仍在继续。调用了正确的python版本(2.6.7)。

注意:我在错误发生后多次删除并重新安装了包python-lxml。错误仍然存​​在:

sudo aptitude install pyhton-lxml

我是否必须执行某种神奇的脚本才能找到模块?

Bellow是命令的输出: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\0@n\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)                           = ?

2 个答案:

答案 0 :(得分: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 /您似乎正在运行的本地/ bin版python。

除非您出于某种原因需要/ usr / local版本的python,否则最简单的解决方案是卸载它并使用/ usr / bin版本的python。

答案 1 :(得分: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