2014-10-13 4 views
1

У меня в настоящее время установлены оба Python 3.3 и 3.4, установленные на моей системе Ubuntu 14.04. Когда я установить пакет Python с использованием pip3, например numpy,Установка пакетов на определенную версию Python

sudo pip3 install numpy 

это только устанавливает его на Python 3.4. Как я могу установить его на Python 3.3?

Спасибо!

+0

В качестве дополнительной заметки: Ubuntu имеет 'numpy' (и друзей)' apt' -возможные пакеты для всех версий Python, для которых у него есть пакеты, и согласно [scipy site] (http: //www.scipy .org/install.html) с 12.10, они достаточно хороши для большинства целей. Конечно, вы, вероятно, не спрашиваете _just_ о 'numpy'; вы просто использовали его в качестве примера. – abarnert

+0

зачем вам обоим? –

ответ

2

Каждая установка Python имеет свои собственные отдельные пакеты сайтов.

Итак, если вы хотите установить их для обоих, вам необходимо установить его дважды. Способ сделать это - использовать pip3.3 и pip3.4 вместо pip3. (Если у вас нет pip3.3, вам придется установить его, конечно.)


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

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

Скомпилированный байт-код .pyc также может изменяться между версиями, даже если модуль не делает ничего другого.

Но самая большая проблема, традиционно, это бинарные модули расширения C. В общем, модуль, составленный против одного libpython, не будет работать с другой версией Python. Однако в случае 3.3+ это не всегда так - модуль, который использует только «стабильный» API, может быть скомпилирован для 3.3 и по-прежнему работает в версии 3.4 (при условии, что, конечно же, те же настройки платформы и сборки).


Python постепенно развивается, чтобы иметь дело с скомпилированных модулей (как .pyc и .so), которые могут быть разделены между установками, но это еще не там.

В тех случаях, когда вы знаете (или готовы проверить), что они совместимы, вы всегда можете настроить дополнительный каталог shared-site-packages, настроить свой 3.3 для установки в этот каталог и настроить как 3.3, так и 3.4 на посмотри на это. Тем не менее, это обычно больше работы, чем того стоит.

+0

Большое спасибо за ваш ответ! Как мне установить 'pip3.3'? 'sudo apt-get install python3.3-setuptools' не работает. –

+0

@Sean: Как вы установили Python 3.3, Python 3.4 и pip для Python 3.4? (Но на самом деле, если этот ответ не является тривиальным, это, вероятно, специфичный для Ubuntu, и ему может быть лучше ответили на SuperUser или AskUbuntu или на аналогичный сайт.) – abarnert

+0

@Sean: Конечно, вы всегда можете следовать установке [generic 'pip' инструкции] (https://pip.pypa.io/en/latest/installing.html) для 3.3 (но будьте осторожны, чтобы убедиться, что он не перезаписывает 'pip' или' pip3', или устанавливает где-то, что не на вашем «PATH» и т. д.).Но я думаю, было бы лучше, если бы ваш менеджер пакетов узнал, что вы установили, если это вообще возможно. – abarnert