1

私は自分のユーザーでスクリプトを実行しています:

# from /etc/lighttpd/lighttpd.conf

server.document-root        = "/opt/app/current/bin/"
server.username             = "klenwell"

fastcgi.server  = (
    ".py" => (
        "localhost" => (
            "socket" => "/tmp/klenwell-fastcgi.socket",
            "bin-path" => "/opt/app/current/bin/app.py",
            "max-procs" => 5
        )
    )
)

私のpythonスクリプトでは、シバンを次のように設定しています。

#!/usr/bin/env python

しかし、スクリプトを実行すると、pip でインストールしたモジュールをロードできないというエラーが表示されます。これは、pyenv バージョンではなく、システム python を使用していることを示しています。

/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf start
(traceback omitted)
ImportError: No module named requests

pyenv python install を明示的に使用するようにシバンを変更すると、次のようになります。

#!/home/klenwell/.pyenv/versions/2.7.8/bin/python

lighttpd を正常に起動できました。

現在、同じ基本構成で、pyenv ではなく pythonbrew を使用して Web アプリケーションを正常に実行しています。しかし、pythonbrew が非推奨になったので、pyenv に移行しようとしています。ユーザーの pyenv を正常にロードするように lighttpd を構成する方法についてのアイデアはありますか?

4

1 に答える 1