yum을 실행하는 데 필요한 Python 모듈 중 하나를 가져오는 중 문제가 발생했습니다.

yum을 실행하는 데 필요한 Python 모듈 중 하나를 가져오는 중 문제가 발생했습니다.

VTK 5.1용 Python 바인딩을 올바르게 설치했습니다. Python에서는 import vtk작동하지만 import itk아직 작동하지 않습니다. 그래서 ITK 4.2용 Python 바인딩을 설치하고 싶습니다.

./configureSWIG 2.0.7을 설치해야 했고, SWIG 소스 디렉토리에 나타난 오류 메시지를 보고 이를 설치해야 한다는 것을 알았기 pcre때문에 pcre 8.31 버전을 선택했습니다. 프로세스를 요약하면 다음과 같습니다.

(VTK + Python) ---> 이것이 작동합니다.

(ITK + Python) ---> SWIG 필요 ---> PCRE 필요

이제 pcre가 설치되었으므로 내 문제는 yum이 작동을 멈췄다는 것입니다.

[root@wok build]# yum
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   libvtkIOPythonD.so.5.10: cannot open shared object file: No such file or directory

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7 (r27:82500, Sep 16 2010, 18:02:00) 
[GCC 4.5.1 20100907 (Red Hat 4.5.1-3)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

PATH에 변수를 추가해야 하는지 궁금합니다.

아마도 이것은 SWIG에서 겪고 있는 문제와 관련이 있을 수 있습니다. 이는 사용자로 작동하지만 루트로는 작동하지 않습니다.

wok ~ $ swig -swiglib
/usr/local/share/swig/2.0.7

[root@wok home]# swig -swiglib
swig: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

swig가 사용자와 루트 모두에서 작동할 수 있도록 하려면 루트 사용자의 .bashrc에 한 줄을 추가해야 했습니다.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/

Python 경로에 뭔가가 있을 수 있습니다.

import vtkPython에서는 사용자 역할을 할 수 있지만 루트 역할은 할 수 없다는 것을 알았습니다 .

wok ~ $ python
Python 2.7 (r27:82500, Sep 16 2010, 18:02:00) 
[GCC 4.5.1 20100907 (Red Hat 4.5.1-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtk
>>> 

하지만:

[root@wok ~]# python
Python 2.7 (r27:82500, Sep 16 2010, 18:02:00) 
[GCC 4.5.1 20100907 (Red Hat 4.5.1-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/user/wok/home/Softwares/VTK_5.1/build/Wrapping/Python/vtk/__init__.py", line 41, in <module>
    from vtkCommonPython import *
ImportError: libvtkCommonPythonD.so.5.10: cannot open shared object file: No such file or directory

PCRE가 올바르게 설치된 것 같습니다.

[root@wok build]# pcretest -C
PCRE version 8.31 2012-07-06
Compiled with
  8-bit support only
  No UTF-8 support
  No Unicode properties support
  No just-in-time compiler support
  Newline sequence is LF
  \R matches all Unicode newlines
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack

그리고

[root@wok build]# locate libpcre
/lib64/libpcre.so.0
/lib64/libpcre.so.0.0.1
/usr/lib64/libpcrecpp.so.0
/usr/lib64/libpcrecpp.so.0.0.0
/usr/lib64/libpcreposix.so.0
/usr/lib64/libpcreposix.so.0.0.0

답변1

문제는 PYTHONPATH와 관련이 있습니다. .bashrc내가 가지고 있는 4개 행 중 하나의 행을 제거 하면 문제가 해결될 수 있습니다.튜토리얼에서 복사함:

export PYTHONPATH=$PYTHONPATH:~/Softwares/VTK_5.1/build/Wrapping/Python/vtk/

나는 다음 세 줄을 유지했습니다.

export PYTHONPATH=$PYTHONPATH:~/Softwares/VTK_5.1/build/Wrapping/Python/
export PYTHONPATH=$PYTHONPATH:~/Softwares/VTK_5.1/build/bin/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/Softwares/VTK_5.1/build/bin/

이제 사용자로 갈 수 있고 import vtk여전히 yum루트로 있을 수 있습니다. 나는 루트가 될 수 없지만 import vtk결코 루트가 되고 싶지 않습니다.

이 문제를 해결하기 위해 먼저 .bashrc파일을 삭제하고 수정된 것을 확인했습니다 yum. 그런 다음 위 의 줄을 추가하여 PYTHONPATH.import vtkipythonimport vtk

관련 정보