Как я запускаю mulitple Python с virtualenv в производстве?

Я установил virtualenv для выполнения другой версии Python, чем система Python для моего django приложения. Я установил Python 2.7.11 с помощью метода, описанного здесь. Я изменил свой файл uwsgi.ini для использования virtualenv. Когда я перезапускаю nginx и uwsgi, я получаю следующую ошибку в своем журнале uwsgi:

ImportError: /home/me/python2711/lib/python2.7/lib-dynload/_io.so: undefined symbol: PyUnicodeUCS2_Replace
unable to load app 0 (mountpoint='') (callable not found or import error)

От другого чтения я сделал (см. здесь для одного примера), кажется, что проблема связана с наличием двух других версий Python, конфликтующего друг с другом, которого я, что я думал virtualenv, был предназначен для разрешения.

Мой вопрос, что я должен изменить в своей конфигурации/установках для получения моего django приложения, работающего над установленным Python 2.7.11, а не системная установка 2.7.3?

Править

Для разговора с комментарием @TheBrownOne ниже я действительно устанавливал последнюю версию из источника локально в /usr/local/lib/python2.7.11 и указанный, что как версия Python для моего virtualenv с

virtualenv python2711 --python=/usr/local/lib/python2.7.11/bin/python

как часть моей исходной дорожной карты. Это все еще приводит к этой ошибке.

0
задан 23 May 2017 в 15:39

1 ответ

virtualenv для руководящих зависимостей от пакета Python, не версии самого Python. Если бы Вы хотите иметь определенные версии самого Python, вероятно, было бы выгодно изучить, вместо этого, контейнеры Докера. Контейнеры докера способны к тому, что Вы описываете.

Кроме того, можно установить 2.7.11 версий Python, где-нибудь локального:

wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
tar -zxvf Python-2.7.11.tgz
cd Python-2.7.11
mkdir ~/.localpy
./configure prefix=/home/$USER/.localpy
make
make install

Затем измените свой virtualenv для включения -p /home/$USER/.localpy/bin/python2.7

4
ответ дан 23 December 2019 в 17:23

Другие вопросы по тегам:

Похожие вопросы: