Я пытаюсь установить пакет python (scikits.learn) в свой пользовательский каталог (на сервере Ubuntu, для которого у меня нет прав sudo), но получаю
error: Python.h: No such file or directory
Может быть, потому что у меня не установлен python-dev. Но как мне установить python-dev без sudo? ИЛИ есть ли другой простой выход для Python.h?
решение1
Вы можете скомпилировать свой собственный Python из исходников, а затем установить любые модули, которые вам нужны. http://docs.python.org/devguide/
решение2
Я знаю, что это немного похоже на некромантию (оживление старых постов), но я столкнулся с той же проблемой и не смог найти ответа, поэтому делюсь тем, что нашел...
Мое решение:
Я работаю на 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: нет такого файла или каталога».
Мое решение, не совсем чистое, но, по крайней мере, ограниченноеvirtualenv и виртуальная папка pythonявляется:
- создать тестовый каталог (package_download)
- no-sudo@pc:~/package_download$ apt-get скачать libpython2.7-dev
- no-sudo@pc:~/package_download$ apt-get скачать python-dev
- no-sudo@pc:~/package_download$ dpkg -x libpython2.7-dev_2.7.12-1ubuntu0~16.04.1_amd64.deb .
- no-sudo@pc:~/package_download$ dpkg -x python-dev_2.7.11-1_amd64.deb .
Это загрузит библиотеку и извлечет ее в папку package_download. Теперь начинается грязная часть, поскольку pip не позволил мне указать это местоположение, я добавил эти файлы туда, где им и место, в папку virtualenv...
- Объедините "~/package_download/usr/bin" с каталогом bin внутри вашеговиртуальный питонпапку установки (ту, которую вы использовали для установки virtualenv и создания своей среды), но не заменяйте никакие файлы.
- Объедините "~/package_download/usr/lib" с каталогом lib внутри вашеговиртуальный питонПапка. Здесь нет конфликтов.
- Скопируйте содержимое "~/package_download/usr/include/python2.7" в папку include/python2.7/, здесь нет конфликтов. Это на самом деле самая грязная часть, так как мы изменяем папку установкивиртуальный питон(для этого не требуется sudo, так как это no-sudoвиртуальный питон).
- Скопируйте папку "~/package_download/usr/include/x86_64-linux-gnu" в папку include/python2.7/. Копирование папок здесь не проблема...
теперь запустите вашу виртуальную среду:
- no-sudo@pc:~/running_virtualenv$ исходный bin/activate
- (running_virtualenv)no-sudo@pc:~/running_virtualenv$ pip установить jupyter
- наслаждаться...
Если вы обнаружили, что вашвключить/python2.7/является символической ссылкой, то вы перепутали папку virtualenv с папкой virtual python. (Спасибо @andrzej1_1 за обнаружение этой проблемы)