0

我正在尝试将一个小型 python 瓶应用程序部署到 REdHat openshift 平台,但我不断收到 500 服务器错误。当我 ssh 进入应用程序并运行 python 时,我发现导入瓶(或我使用的所有其他库)因 importError 而失败。

我以两种方式安装了所需的模块(遵循几个教程):

两者都在 setup.py :

install_requires=['sqlalchemy','bottle','requests']

并通过在数据文件夹中安装 virtenv,使用以下命令激活它:

source virtenv/bin/activate

和 pip install bottle sqlalchemy 请求

然后将 wsgi 处理程序入口点:'application' 编辑为:

import os
here = os.path.dirname(os.path.abspath(__file__))
os.environ['PYTHON_EGG_CACHE'] = os.path.join(here, '..', 'data', 'virtenv/lib/python2.7/site-packages')

virtualenv = os.path.join(here, '..', 'data/virtenv/bin/activate_this.py')
execfile(virtualenv, dict(__file__=virtualenv))

from myappname import application

(其中 myappname 包含实际的瓶应用程序逻辑)在每次更改后将所有内容推送到 git push 到 openshift,然后是相同的 500 服务器错误。当 ssh 到应用程序并运行时

python application

我收到导入错误似乎没有任何工作,我很乐意在这里提供任何帮助

编辑: 当 ssh 进入应用程序并手动执行

source virtenv/bin/activate

并尝试运行 python 一切都按预期工作(至少大部分工作)。所以出于某种原因,activate_this.py 的行为似乎没有任何线索?

4

1 回答 1

1

突出的一件事是你的鸡蛋的位置有点偏离。大概,这不是一个错字,电子没有和鸡蛋一起被打乱!!:^)

os.environ['PYTHON_EGG_CACHE'] = os.path.join(这里, '..', 'data', 'virtenv/lib/python2.7/site-packages')

尝试使用 python2.6 而不是 2.7。我认为这应该会导致模块被加载。

于 2012-03-17T20:31:01.257 回答