Como posso instalar o python-dev sem o sudo?

Como posso instalar o python-dev sem o sudo?

Estou tentando instalar o pacote python (scikits.learn) no meu diretório de usuário (em um servidor Ubuntu para o qual não tenho permissão sudo), mas estou recebendo

error: Python.h: No such file or directory

Pode ser porque não tenho o python-dev instalado. Mas como posso instalar o python-dev sem o sudo? OU existe alguma outra saída fácil para Python.h?

Responder1

Você pode compilar seu próprio python a partir das fontes e, em seguida, instalar os módulos que desejar. http://docs.python.org/devguide/

Responder2

Eu sei que isso é um pouco de necromancia (reviver posts antigos), mas enfrentei o mesmo problema e não consegui encontrar uma resposta, então estou compartilhando a que encontrei...

Minha solução:

Estou trabalhando em um desktop Ubuntu 16.04, sem sudo e apenas com python 2.7 instalado. Consegui configurar um virtualevn sem sudo (seguindohttps://stackoverflow.com/questions/9348869/how-to-install-virtualenv-without-using-sudo) e ao tentar instalar o jupyter me deparei com o "erro: Python.h: Nenhum arquivo ou diretório ausente".

A minha solução, nada limpa, mas pelo menos confinada apasta virtualenv e python virtualé:

  1. crie um diretório de teste (package_download)
  2. no-sudo@pc:~/package_download$ apt-get baixar libpython2.7-dev
  3. no-sudo@pc:~/package_download$ apt-get baixar 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 .

Isso fará o download da biblioteca e a extrairá na pasta package_download. Agora vem a parte suja, como o pip não me permitiu direcionar esse local, adicionei esses arquivos ao local onde eles pertencem, dentro da pasta virtualenv...

  1. Mesclar "~/package_download/usr/bin" com o diretório bin dentro do seupíton virtualpasta de instalação (aquela que você usou para instalar o virtualenv e criar seu ambiente), mas não substitui nenhum arquivo.
  2. Mesclar "~/package_download/usr/lib" com o diretório lib dentro do seupíton virtualpasta. Não há conflitos aqui.
  3. Copie o conteúdo de "~/package_download/usr/include/python2.7" para sua pasta include/python2.7/, sem conflitos aqui. Esta é na verdade a parte mais suja, já que estamos modificando a pasta de instalação dopíton virtual(isso não precisa do sudo, já que não é sudopíton virtual).
  4. Copie a pasta "~/package_download/usr/include/x86_64-linux-gnu" para sua pasta include/python2.7/. Copiar pastas não tem problema aqui...

agora execute seu ambiente virtual:

  1. no-sudo@pc:~/running_virtualenv$ fonte bin/ativar
  2. (running_virtualenv)no-sudo@pc:~/running_virtualenv$ pip instalar jupyter
  3. aproveitar...

Se você descobriu que seuincluir/python2.7/é um link simbólico, então você confundiu a pasta virtualenv com a pasta virtual python. (Obrigado @andrzej1_1 por encontrar este problema)

informação relacionada