Erros ao importar com o pip devido ao PYTHONPATH no servidor ubuntu

0

Estou acompanhando o tutorial e afirma que

The $PYTHONPATH variable seems to get unset randomly, and causes errors for later steps.

e depois adicionar o seguinte a ~/.bashrc :

export PYTHONPATH='/usr/lib/python2.7:/usr/lib/python2.7/plat-x86_64-linux-gnu:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages/PILcompat'

Eu fiz isso e tentei instalar vários pacotes pip com pip install -r requirements.txt

Eu recebo uma carga de erros ao instalar todos os pacotes, isso pode ser visto aqui .

Acho que isso está relacionado ao problema com o PYTHONPATH. Por que recebo este erro e o que pode ser feito para que eu não receba erros ao usar python e pip? Obrigado.

Editar:

Eu verifiquei outros tutoriais para configurar o Flask com o Ubuntu e nenhum deles declarou alterar PYTHONPATH . Eu segui este tutorial e tentei instalar pacotes em um virtualenv mas eu obter erros. Eu tentei instalar um pacote chamado python-bcrypt mas pegue isso no terminal:

bcrypt/bcrypt_python.c:17:20: fatal error: Python.h: No such file or directory

 #include "Python.h"

                    ^

compilation terminated.

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Eu tentei instalar o pycrypto e recebi o mesmo:

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -fwrapv -Wall -Wstrict-prototypes -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/MD2.c -o build/temp.linux-x86_64-2.7/src/MD2.o

src/MD2.c:31:20: fatal error: Python.h: No such file or directory

 #include "Python.h"

                    ^

compilation terminated.

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Existe alguma razão para isso? Obrigado.

    
por Pav Sidhu 19.09.2015 / 18:03

2 respostas

2

Instalar a biblioteca de desenvolvimento do Python resolveu isso para mim (a partir dessa resposta: link ).

sudo apt-get install python-dev  # for python2.x installs
sudo apt-get install python3-dev  # for python3.x installs
    
por Bryce Siedschlaw 21.03.2017 / 19:07
1

"Desviar aleatoriamente"? Não.

A variável de ambiente PYTHONPATH é definida por um processo (provavelmente executando bash ). Se PYTHONPATH for export ed, uma cópia de PYTHONPATH será passada para qualquer processo iniciado por este (ou qualquer um iniciado).

Se algum processo filho destruir PYTHONPATH via:

unset PYTHONPATH

ou

PYTHONPATH=

então o mau PYTHONPATH é visível apenas para o processo que o destruiu, e todos os processos que processam (ou seus filhos) são iniciados subseqüentemente.

Eventualmente, quando os processos filho terminar e sair, o processo com o% mauPYTHONPATH será encerrado e a (má) definição que ele tinha para PYTHONPATH também desaparecerá.

O processo que iniciou a criança que destruiu PYTHONPATH terá a definição não destruída e sempre a terá.

Eu suspeito que "este tutorial" não tenha compreensão sobre o Linux e possa ser perigoso.

Seu PYTHONPATH contém os seguintes diretórios:

/usr/lib/python2.7
/usr/lib/python2.7/plat-x86_64-linux-gnu
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages/PILcompat

Faça a si mesmo as seguintes perguntas, para CADA diretório em $ PYTHONPATH:

Existe no meu sistema e as permissões dizem que posso acessá-lo?

/bin/ls -ld $(echo "$PYTHONPATH" | tr ":" " ")  

Posso acessar os arquivos dentro do diretório?

/bin/ls -l $(echo "$PYTHONPATH" | tr ":" " ")

Esse diretório contém arquivos que o Python, ou os programas em Python ou o que você deseja executar, e acessa por meio de $PYTHONPATH .

Olhando para a mensagem FIRST error (not warning, not info, mas "error"), vê-se:

  Running setup.py (path:/tmp/pip_build_ubuntu/MySQL-python/setup.py) egg_info for package MySQL-python
    sh: 1: mysql_config: not found

Pesquisando manpages.ubuntu.com por msql_config produz:

trusty (1) mysql_config.1.gz
Provided by: libmariadbclient-dev_5.5.36-1_i386 

NAME
       mysql_config - get compile options for compiling clients

SYNOPSIS
       mysql_config options

DESCRIPTION
       mysql_config provides you with useful information for compiling your
       MySQL client and connecting it to MySQL.

Isso significa que você NÃO instalou e configurou com sucesso MySQL ou MySQL client , e o que quer que "este tutorial" esteja tentando fazer é requerer MySQL .

    
por waltinator 19.09.2015 / 18:42