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