質問

この問題の何が問題なのかはわかっていますが、それを修正する最善の方法については少し混乱しています。

私は RHEL 5.4 システムを使用しており、Python2.6 が (geekymedia RPMS 経由で) alt インストールされています。すべてが機能しているようです。仕様ファイルを微調整すると、この新しい Python インストールで動作する RPM を構築できます。すべての RPM を同じ 64 ビット システム上に構築しています。

[jduncan@mgi-ric-squid1 x86_64]$ rpm -qa python
python-2.4.3-27.el5
[jduncan@mgi-ric-squid1 x86_64]$ rpm -qa python26
python26-2.6-geekymedia1
[jduncan@mgi-ric-squid1 x86_64]$ rpm -qa enchant
enchant-1.4.2-4.el5.1
enchant-1.4.2-4.el5.1
[jduncan@mgi-ric-squid1 x86_64]$ rpm -qa python-enchant
python-enchant-1.5.1-7.2

エンチャント RPM は RHEL リポジトリからのデフォルトです。

エンチャント モジュールをインポートしようとすると、次の警告が表示され、辞書オブジェクトを作成できません。

[jduncan@mgi-ric-squid1 x86_64]$ python26
Python 2.6 (r26:66714, Feb 24 2010, 15:24:02)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import enchant
libenchant.so.1

** (process:10075): WARNING **: Error loading plugin: /usr/lib/enchant/libenchant_myspell.so: wrong ELF class: ELFCLASS32

>>> d = enchant.Dict("en_US")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 470, in __init__
    self._switch_this(broker._request_dict_data(tag),broker)
  File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 256, in _request_dict_data
    self._raise_error(eStr % (tag,),DictNotFoundError)
  File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 212, in _raise_error
    raise eclass(default)
enchant.DictNotFoundError: Dictionary for language 'en_US' could not be found

エンチャント 1.5.1 への単純なアップグレードは機能しますか?それともそれ以上の作業が必要ですか?

役に立ちましたか?

解決

他の人がこれに遭遇した場合に備えて:

  1. RHEL バージョンのエンチャントを削除しました
  2. エンチャント用の RHEL ソース RPM をダウンロードしました (同じバージョン)
  3. エンチャント用に独自の 64 ビット専用 RPM を構築しました
  4. それをインストールしました

私の Py2.6 altinstall python-enchant パッケージが動作するようになりました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top