我正在使用自己的用户运行脚本:
# 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 脚本中,我的 shebang 设置如下:
#!/usr/bin/env python
但是当我运行脚本时,我收到一条错误消息,指出它无法加载我使用 pip 安装的模块。这表明它使用的是系统 python 而不是 pyenv 版本。
/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf start
(traceback omitted)
ImportError: No module named requests
如果我将 shebang 更改为显式使用 pyenv python 安装,如下所示:
#!/home/klenwell/.pyenv/versions/2.7.8/bin/python
我能够成功启动 lighttpd。
目前,相同的基本配置正在使用 pythonbrew 而不是 pyenv 成功运行 Web 应用程序。但由于 pythonbrew 已被弃用,我正在尝试迁移到 pyenv。关于如何配置 lighttpd 以便它为我的用户成功加载 pyenv 的任何想法?