2015-07-28 2 views
3

Нужна помощь в обновлении пакета python.Python импортирует неправильную версию библиотеки за пределы virtualenv

У меня есть реализация, которая требует последующего импорта был добавлено в скрученной рамку с версией 14

from twisted.internet.ssl import optionsForClientTLS 

«optionsForClientTLS» (?). Я думаю, что импорт не-virtualenv получает устаревшую версию. Если этот импорт находится внутри виртуального виртуального диска, который скручивается через pip, все в порядке. Импорт завершается за пределами virtualenv.

В virtualenv

twistd --version 

показывает 15.2.1. На голой системе это показывает 13.2.0.

pip install twisted 
.... 
pip freeze 

показывает

Twisted==15.2.1 

деинсталляция скручены с помощью пип и переустановка не помогло. Вы можете установить скрученный из APT-получить, используя

sudo apt-get install python-twisted 

и устанавливает более старую версию, но после того, как очищать его и устанавливать только с помощью пип я все еще получаю старую версию.

Possibly related.

ответ

0

Я решил проблему по-страшному. Это было несколько дней назад, поэтому пути могут быть не совсем правильными.

Предполагалось, что было два пакета python были правильными (я думаю.) Я подозреваю, что порядок путей в PYTHONPATH означает, что сначала была импортирована неправильная версия, а pip - в версии, которая позже была включена путь.

Моим «решением» было скопировать витую директорию из актуальной версии в более старую версию. Это было либо от usr/local/lib/python... до usr/lib/python..., либо от ... site-packages до ... dist-packages.. Я могу проверить еще раз, если у кого-то есть такая же проблема и он не может ее решить.

+0

Почему вы устанавливаете другую версию Twisted на вашу базовую систему? Для этого нужен виртуальный; установите версию, которую вы хотите в virtualenv, а затем запустите ее из virtualenv. – Glyph

+0

Мне нужно распределить полученный пакет через pypi и потребовать, чтобы virtualenv удостоверился, что все работает недостаточно. – Damouse

+0

Вы хотите, чтобы система непрерывной интеграции выполняла системные установки? В этом случае вы можете использовать что-то вроде Docker для изоляции. Вы делаете что-то необычное с distutils, где он будет вести себя по-разному при установке системы против виртуального? – Glyph