web-dev-qa-db-ja.com

RHEL 6.x-yumは「ImportError:cElementTreeという名前のモジュールはありません」エラーを出します

150台のサーバーのグループに一連の変更を加えています。 1つを除いて、すべてのシステムはyumを介して特定のRPMセットを正常にダウンロードおよびインストールできました。この特定のシステムの1つである「クリーン」以外のすべてのyumコマンドは、次のものを画面にダンプします。

[root@dev1v ~]# yum install sssd
Loaded plugins: rhnplugin
/usr/lib64/python2.6/xmlrpclib.py:612: DeprecationWarning: The xmllib module is obsolete.  Use xml.sax instead.
  import xmllib # lazy subclassing (!)
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 285, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 136, in main
    result, resultmsgs = base.doCommands()
  File "/usr/share/yum-cli/cli.py", line 434, in doCommands
    self._getTs(needTsRemove)
  File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 99, in _getTs
    self._getTsInfo(remove_only)
  .
  .
  .
  File "/usr/lib/python2.6/site-packages/yum/repoMDObject.py", line 124, in __init__
    self.parse(srcfile)
  File "/usr/lib/python2.6/site-packages/yum/repoMDObject.py", line 140, in parse
    parser = iterparse(infile)
  File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1169, in cElementTree_iterparse
    _cElementTree_import()
  File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1164, in _cElementTree_import
    import cElementTree
ImportError: No module named cElementTree

私はもう試した:

  • きれいだね
  • rPMを使用してビットとピースを手動で再インストールしています... expatpythonの一部など.
  • rPMデータベースの再構築

何かご意見は?

4
ewwhite

修正:

どうやら、このシステムのOracleインストールは、OracleのパスをLD_LIBRARY_PATHに挿入しました...

[root@dev1v etc]# export 
declare -x LD_LIBRARY_PATH="/home/Oracle/app/Oracle/product/11.2.0/client_1/lib"

変数の設定を解除すると、yumが再び正しく機能するようになりました。

10
ewwhite

うーん、python 2.6では、cElementTreeはpythonパッケージの一部である/usr/lib64/python2.6/xml/etree/cElementTree.pyにあります。 yumコードでimport cElementTreeに到達しているという事実は、xml.etreeが欠落しているように見えることを示しています。

Rpmを手動でダウンロードし、rpm -Uvhを使用してpythonを再インストールしてみてください。

それが機能しない場合、pythonシェルでimport xml.etree.cElementTreeを実行するとどうなりますか? rpm --verify pythonは何と言いますか?

1

オラクルのlib/パスを/etc/ld.so.conf.dに入れてこの問題を引き起こしている人も見ました

使用:

echo /opt/Oracle/app/product/11.2.0/dbhome_1/lib/> /etc/ld.so.conf.d/Oracle.conf

/etc/ld.so.conf.d/Oracle.confを削除して、この問題を解決しました。

declare -x機能しませんでした。
これでうまくいきました。

[root@Host ~]# unset LD_LIBRARY_PATH

/etc/ld.so.confで変数が定義されている場合は、それを削除して#ldconfigコマンドを実行し、ldキャッシュを再作成します。

[root@Host ~]# ldconfig

Pythonライブラリが正しい/lib64/libexpat.so.1ライブラリにリンクしていることを確認します。

[root@Host ~]# ldd /usr/lib64/python2.6/lib-dynload/pyexpat.so
0
Vishnu Kumar

最近、私はこの問題を次のように解決しました:(OS:OracleがインストールされたCentOS 6.3)。

  1. 編集/etc/profile 見つけて export LD_LIBRARY_PATH行が存在する場合。

  2. 追加 /lib64$Oracle_HOME/lib

    export  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib64:$Oracle_HOME/lib:/lib:/usr/lib:/usr/lib/Oracle/11.2/client/lib
    
  3. ログアウトし、rootとして再ログオンします。

0
user2785748