OpenShift Paas развертывание с бутылкой и Python - не находит подходящего места для импорта из установленных модулей - PullRequest
0 голосов
/ 16 марта 2012

Я пытаюсь развернуть маленькое приложение с бутылкой python на платформе REdHat openshift, и получаю 500 ошибок сервера.когда я захожу в приложение и запускаю python, я обнаруживаю, что импорт бутылки (или любой другой библиотеки, которую я использую) завершается неудачно с importError.

Я установил необходимые модули двумя способами (следуя нескольким учебникам):

как в файле setup.py:

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

, так и установив virtenv впапку с данными, активировав ее с помощью:

source virtenv/bin/activate

и sqlalchemy запросов pip install bottle

и затем отредактировав точку входа обработчика 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

Я получаю ошибку импорта, кажется, ничего не работает, я буду рад любой помощи здесь

edit: когдаSSH в приложение и вручную делает

source virtenv/bin/activate

и пытается запустить Python все работает (ну, по крайней мере, большинство из них работает), как ожидалось.так почему-то кажется, что activ_this.py не ведет себя так, как ожидалось, какие-либо подсказки?

1 Ответ

1 голос
/ 18 марта 2012

Одна вещь, которая выделялась, была то, что ваши яйца были немного не в порядке. Предположительно, это не опечатка, и электроны не забились вместе с яйцами !! : ^)

os.environ ['PYTHON_EGG_CACHE'] = os.path.join (здесь, '..', 'data', 'virtenv / lib / python2.7 / site-packages')

Попробуйте это с python2.6 вместо 2.7. Я думаю, что это должно привести к загрузке модулей.

...