Проблема встановлення 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. Як я можу це зробити? На даний момент я готовий розглянути крайні варіанти, якими б вони не були.


Проблема не в установці 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

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

Чи можете ви відредагувати своє запитання, щоб включити вихід:

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сховище, але це не у вашому поточному списку source.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-пакетами, щоб отримати доступ до того, що встановлено через 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.


0

Для тих, хто стикається з цією проблемою, спершу спробуйте запустити

sudo apt-get update

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


Давати таке вступ необов’язково. Просто дайте свою відповідь. Згідно з моїм досвідом, не завжди unmet dependencyце можна вирішити за допомогоюsudo apt-get update
Мостафа Ахангарха
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.