2018-11-02

pip install --userでインストールしたパッケージをprocmailで使用する

ホームディレクトリにPIPをつかってパッケージをインストールすると、.local/lib/の下に展開される。 ところが、このディレクトリはSELinuxのコンテクストがunconfined_u:object_r:gconf_home_t:s0になっており、問題が生じる。

例えば、ProcmailからPythonを呼び出し、その中でモジュールをインポートしようとすると、以下のようなエラーメッセージが出る。 以下はBeautifulSoupを使用した例。

Traceback (most recent call last):
  File "/tmp/a.py", line 3, in 
    from bs4 import BeautifulSoup
ImportError: cannot import name 'BeautifulSoup'

とりあえず以下のコマンドで問題を回避する。 $ chcon -R unconfined_u:object_r:user_home_t:s0 .local/lib/python3.4/site-packages/