2

Я пытаюсь установить пакет Python (scikits.learn) в моем каталоге пользователя (на сервере Ubuntu, для которого у меня нет разрешения sudo), но я получаю

error: Python.h: No such file or directory

Это может быть потому, что у меня не установлен python-dev. Но как я могу установить python-dev без sudo? ИЛИ есть ли другой простой выход для Python.h?

2 ответа2

3

Вы можете скомпилировать свой собственный Python из исходников, а затем установить любые модули, какие вы хотите. http://docs.python.org/devguide/

1

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

Мое решение:

Я работаю на Ubuntu 16.04 Desktop без sudo и только с установленным Python 2.7. Мне удалось настроить virtualevn без sudo (после https://stackoverflow.com/questions/9348869/how-to-install-virtualenv-without-using-sudo) и при попытке установить jupyter я обнаружил пропущенную ошибку: Python.h: нет такого файла или каталога ".

Мое решение, не совсем чистое, но по крайней мере ограниченное виртуальной папкой python :

  1. создать тестовый каталог (package_download)
  2. no-sudo @ pc:~/package_download $ apt-get загрузить libpython2.7-dev
  3. no-sudo @ pc:~/package_download $ apt-get загрузить python-dev
  4. no-sudo @ pc:~/package_download $ dpkg -x libpython2.7-dev_2.7.12-1ubuntu0 ~ 16.04.1_amd64.deb.
  5. no-sudo @ pc:~/package_download $ dpkg -x python-dev_2.7.11-1_amd64.deb.

Это загрузит библиотеку и распакует их в вашу папку package_download. Теперь перейдем к грязной части, так как pip не позволил мне нацелить это местоположение, я добавил эти файлы туда, где они находятся, внутри папки virtualenv ...

  1. Объедините «~/package_download/usr/bin» с каталогом bin внутри вашей папки установки виртуального python (той, которую вы использовали для установки virtualenv и создания среды), но не заменяйте никакие файлы.
  2. Объедините "~/package_download/usr/lib" с каталогом lib внутри вашей виртуальной папки python . Здесь нет конфликтов.
  3. Скопируйте содержимое "~/package_download/usr/include/python2.7" в папку include/python2.7/, здесь нет конфликтов. На самом деле это самая грязная часть, поскольку мы модифицируем папку установки виртуального питона (для этого не требуется sudo, поскольку это виртуальный питон no-sudo).
  4. Скопируйте папку «~/package_download/usr/include/x86_64-linux-gnu» в папку include/python2.7/. Копирование папок здесь не проблема ...

Теперь запустите вашу виртуальную среду:

  1. no-sudo @ pc:~/running_virtualenv $ исходный бин / активировать
  2. (running_virtualenv)no-sudo @ pc:~/running_virtualenv $ pip install jupyter
  3. наслаждаться...

Если вы обнаружили, что ваш include/python2.7/ является символической ссылкой, вы ошибочно приняли папку virtualenv за виртуальную папку python. (Спасибо @ andrzej1_1 за поиск этой проблемы)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .