Установка нескольких версий пакета с помощью pip - PullRequest
58 голосов
/ 04 июля 2011

В моем приложении я хотел бы использовать:

  • packageA, для чего требуется packageX==1.3
  • packageB, для чего требуется packageX==1.4
  • packageX==1.5

Как мне установить несколько версий packageX с pip для решения этой ситуации?

Ответы [ 2 ]

40 голосов
/ 04 июля 2011

пункт не поможет вам в этом.

Вы можете указать ей установить определенную версию, но она переопределит другую.С другой стороны, использование двух virtualenv позволит вам установить обе версии на одном компьютере, но не использовать их одновременно.

Лучше всего установить обе версии вручную, поместив их в свой Python.путь с другим именем.

Но если ваши две библиотеки ожидают, что у них будет одинаковое имя (и они должны), вам придется изменить их, чтобы они выбрали нужную версию с некоторым псевдонимом импорта, таким как:

import dependencyname_version as dependencyname

В настоящее время нет чистого способа сделать это.Лучшее, на что вы можете надеяться, это то, что этот хак сработает.

Я бы предпочел отказаться от одной из двух библиотек и заменить ее эквивалентной, или исправить ее, чтобы принять новую версию зависимости и дать патчназад к сообществу.

10 голосов
/ 10 декабря 2015

Скачать исходники для ea.пакет.Установите каждый в своей отдельной папке.Например.У меня был пакет версии 1.10, но я хотел переключиться на версию dev для некоторой работы.Я скачал исходный код для модуля dev: git clone https://github.com/networkx/networkx.git cd netowkrx Я создал папку для этой версии: mkdir /home/username/opt/python, затем я установил переменную PYTHONPATH env: export PYTHONPATH=/home/username/opt/python/lib/python2.7/site-packages/.Затем я установил его, используя: python setup.py install --prefix=/home/username/opt/python

Теперь, поскольку мой PYTHONPATH теперь указывает на эту папку других пакетов сайта, когда я запускаю python в командной строке и импортирую новый модуль, он работает.Чтобы переключиться обратно, удалите новую папку из PYTHONPATH.

>>> import networkx as nx
>>> nx.__version__
'2.0.dev_20151209221101'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...