Проблема с установкой Python-Dev

16

У меня проблемы с установкой python-dev. Все началось, когда я попытался установить другой пакет Python и получил ошибку:

SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev.

Я пытался, sudo apt-get install python-devно получил ошибку:

The following packages have unmet dependencies:
 python-dev : Depends: python2.7-dev (>= 2.7.3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Итак, я попытался sudo apt-get install python2.7-devи получил ошибку:

The following packages have unmet dependencies:
 python2.7-dev : Depends: python2.7 (= 2.7.3-0ubuntu3) but 2.7.3-0ubuntu3.1 is to be installed
                 Depends: libpython2.7 (= 2.7.3-0ubuntu3) but 2.7.3-0ubuntu3.1 is to be installed

Я попробовал почти все в пост неудовлетворенных зависимостей . Я использую Ubuntu 12.04 и у меня все обновлено. Я сделал apt-get cleanи apt-get autoclean. Я попробовал apt-get -f installи все варианты на эту тему. Я убрал свой PPA. Я даже пытался использовать Aptitude, и, хотя он сильно очищался, результат был тот же.

Я действительно хочу иметь возможность установить Python-Dev. Как я могу это сделать? На данный момент я готов рассмотреть экстремальные варианты, какими бы они ни были.

theJollySin
источник
Проблема не в установке Python-Dev. Проблема в том, чтобы получить src и включить папки, специально разработанные для вашего virtualenv.
RobotHumans
Есть ли у вас какие-либо предложения там? Я использовал --system-site-packages.
theJollySin
1
Прочитайте это: pythoncentral.org/… это объясняет, как это на самом деле работает.
RobotHumans
@CallmeV Это отличный пост, но, к сожалению, он не решает проблему, с которой я пытаюсь установить Python-Dev.
TheJollySin
1
@theJollySin - какую версию Ubuntu вы используете? Пожалуйста, отключите все PPA и запустите sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade. Вставьте вывод в paste.ubuntu.com
fossfreedom

Ответы:

20

Этот бит:

 python2.7-dev : Depends: python2.7 (= 2.7.3-0ubuntu3) but 2.7.3-0ubuntu3.1 is to be installed

предполагает, что вы используете несколько несовпадающих репозиториев или имеете некоторые apt-пин-коды, чтобы не выстраивать зависимости версий. Я думаю, что, в частности, он python-2.7 2.7.3-0ubuntu3.1находится в Precise-proposedрепозитории, а 2.7.3-0ubuntu3версия - в Precise / main, поэтому вы можете предпочесть -proposed для некоторых, но не для всех пакетов.

Можете ли вы отредактировать свой вопрос, чтобы включить вывод:

apt-cache policy python2.7-dev
apt-cache policy python2.7

и возможно:

apt-cache show python2.7

...

Чтение вывода APT-кэша из вашего Pastebin, похоже , у вас есть python2.7 2.7.3-0ubuntu3.1от precise-updates/main установлен, но python2.7-devот precise/main. Я думаю, что ваш установочный носитель или более раннее «обновление apt-get» включали precise-updatesрепозиторий, но его нет в вашем текущем sources.list.

Я думаю, что вы сможете начать установку после добавления, precise-updatesа затем apt-get update.

echo "deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted" | sudo tee -a /etc/apt/sources.list.d/precise-updates.list
sudo apt-get update
sudo apt-get install python2.7-dev
Стивен К
источник
1
Я вставил ответ на apt-cache policy python2.7 и т.п. здесь: paste.ubuntu.com/5775963
theJollySin
5

Вы не должны устанавливать numpy с pip, используйте пакет, который предоставляет Ubuntu:

dennis@koekblik:~$ apt-cache show python-numpy
Package: python-numpy
Priority: optional
Section: python
Installed-Size: 7616
...

Что касается вашей актуальной проблемы: попробуйте установить python2.7-dev. Скорее всего, это не удастся, но должно дать вам лучшее сообщение об ошибке.

Деннис Каарсемакер
источник
Итак, ваше первое утверждение: есть другие пакеты (например gdal), которые были бы намного проще, если бы я мог установить их через PIP. Ваш второй пункт, я могу попробовать это и посмотреть, что произойдет. Благодарю.
theJollySin
1
Я согласен, что pip - полезный инструмент, но, пожалуйста, придерживайтесь пакетов Ubuntu, насколько это возможно, гораздо проще для обновления. И если вы используете pip для установки пакетов, вы можете создать себе virtualenv, поэтому вам не нужно устанавливать его как root в / usr / local.
Деннис Каарсемакер
Хорошо, я постараюсь придерживаться пакетов Ubuntu. Но вся эта проблема началась, потому что я могу numpyнормально работать, но не могу numpyимпортироваться внутри virtualenv. Наличие работающей virtualenvсистемы для разработки на Python определенно является целью. Еще раз спасибо.
TheJollySin
1
Это другой вопрос :) Используйте virtualenv с --system-site-packages, чтобы получить доступ к тому, что установлено через apt.
Деннис Каарсемакер
3

самое быстрое решение:

  • Установите ( sudo apt-get install synaptic) Synaptic Package Manager и запустите его
  • Нажмите на настройки-хранилища
  • Выбрать Загрузить с: Главный сервер
  • щелчок Close затем нажмите Reload.
  • Отметьте python-devдля установки, а Synaptic также отметит все зависимости python-dev(libexpat1-dev, libssl-dev, libssl-doc, python2.7-dev, zlib1g-dev ).

Я только что решил ту же проблему на только что установленном Ubuntu x86 12.04.3.

VVV
источник
0

Для тех, кто сталкивается с этой проблемой, сначала попробуйте запустить

sudo apt-get update

и попробуйте установить снова

Эндрю Хамметт
источник
Не нужно давать такое введение. Просто дайте свой ответ. По моему опыту, не всегда unmet dependencyможно решить с помощьюsudo apt-get update
Мостафа Ахангарха