Подтвердить что ты не робот

Запуск Python из virtualenv с помощью Apache/mod_wsgi, в Windows

Я пытаюсь настроить WAMP-сервер. У меня Apache работает правильно, и я установил mod_wsgi без заминки.

Проблема в том, что я использую виртуальные среды (используя virtualenv) для своих проектов. Так что, очевидно, у mod_wsgi возникают проблемы с установкой моей установки Django.

Я пытаюсь понять, как я могу заставить mod_wsgi хорошо работать с virtualenvs. Документация кажется, что это невозможно:

Обратите внимание, что директива WSGIPythonHome может использоваться только в системах UNIX и недоступна в системах Windows. Это связано с тем, что в системах Windows расположение DLL Python, по-видимому, является тем, что диктует, где Python будет искать файлы библиотеки Python. На данный момент не известно, как можно создать отдельную базовую среду, независимую от основной установки Python в Windows.

Отсюда: mod_wsgi + virtualenv docs.

Есть ли у кого-нибудь представление о том, как сделать эту работу?

4b9b3361

Ответ 1

Вы можете программно активировать среду из Python, добавив ее в ваш .wsgi файл, прежде чем импортировать что-нибудь еще.

От virtualenv docs:

Иногда вы не можете или не хотите использовать интерпретатор Python, созданный виртуальный. Например, в mod_python или mod_wsgi, есть только один интерпретатор.

К счастью, это легко. Вы должны использовать настраиваемый интерпретатор Python для установки библиотеки. Но для использования библиотек вы просто убедитесь, что путь верный. A script доступен для исправить путь. Вы можете настроить среда, например:

activate_this = '/path/to/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

Это изменит sys.path и даже изменить sys.prefix, но также разрешить вам использовать существующий интерпретатор. Предметы в вашей среде появится первый на sys.path, перед глобальными элементами. Однако это не может отменить активация других сред или модули, которые были импортированы. Вы не следует пытаться, например, активировать среду перед веб-сайтом запрос; вы должны активировать один окружающей среды как можно раньше, и не делайте этого снова в этом процессе.