2012-01-31 3 views
2

lxml 모듈을 설치 한 후 내 스크립트가 Ubuntu 10.10의 원래 버전에서 성공적으로 실행됩니다. (파이썬 2.6.6)우분투에 모듈을 찾을 수 없지만 (설치되어 있음)

그래서 필자는 pyhton2.7 (소스 코드에서)을 수동으로 컴파일하고 설치했다. 나는 (소스 코드에서)를 python2.6.7에 반환 한

Error: ImportError: No module named lxml 

하지만 오류가 발생하는 유지 : 내 스크립트는 더 이상 일을하지 않았다. 올바른 파이썬 버전 (2.6.7)이 호출됩니다.

참고 : 오류가 발생한 후 번거롭게 python-lxml 패키지를 제거하고 다시 설치했습니다. 오류가 남아 있습니다 :

파이썬이 모듈을 찾는 데 어떤 종류의 마법 스크립트를 실행해야합니까?

벨로 명령의 출력 : 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

당신은 파이썬의 쉘에서이 모듈을 수입하려고하면? – Denis

+0

같은 것을! :( – miro

답변

3

당신이

/usr/bin/python ./RunScriptPython.py 

를 실행하려고 수있는, 내 진단 (아래) 올바른지 테스트하려면 (그것은 작동합니다 .)


출력 내용에 유의하십시오.

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

가져 오기는 /usr/local/lib/python2.6에 있습니다. 이것은 이 아니고 우분투 시스템의 기본 버전 인 python입니다. 이것은 로컬 설치입니다.

python-lxml 패키지를 설치하면 /usr/lib/python2.6/에 설치되며/usr 대신/usr/bin에있는 Python의 Ubuntu 시스템 기본 버전으로 액세스 할 수 있습니다/local/bin 버전의 python을 실행중인 것처럼 보입니다.

어떤 이유로 든/usr/local 버전의 Python이 필요하지 않다면 가장 쉬운 해결책은 제거하고 Python의/usr/bin 버전을 사용하는 것입니다.

+0

당신이 옳았어요. 고마워요! – miro

0

Aptitude는 배포 표준 Python (2.6.6)에 대해서만 python-lxml을 설치합니다. 수동으로 설치된 Python에 lxml을 사용하려면 각 Python 버전에 대해 lxml을 설치해야합니다.

this SO answer을 읽으십시오. 가장 쉬운 방법은 easy_install 또는 pip을 사용하는 것입니다 (둘 다 PyPI에서 직접 패키지를 다운로드 할 수 있습니다. aptitude와 비슷하지만 Python 패키지의 경우).

그래서, 핍 또는 배포 설치 한 후 : 무슨 일이 생긴 무엇

easy_install-2.7 lxml 
/path/to/python2.7 /path/to/pip install lxml 
관련 문제