Ошибки при импорте с зернышком из-за PYTHONPATH на сервере человечности

Я следовал этому учебному руководству, и оно указывает это

Переменная $PYTHONPATH, кажется, сброшена случайным образом и вызывает ошибки для более поздних шагов.

и затем добавить следующее к ~/.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'

Я сделал это и затем попытался установить набор пакетов зернышка с pip install -r requirements.txt

Я получаю загрузку ошибок при установке всех пакетов, это видно здесь.

Я думаю, что это касается проблемы с PYTHONPATH. Почему я получаю эту ошибку и что может быть сделано так, чтобы я не получал ошибок при использовании Python и зернышка?Спасибо.


Править:

Я проверил другие учебные руководства на установку Фляги с Ubuntu, и ни один не указал изменение PYTHONPATH. Я следовал этому учебному руководству и пытался установить пакеты в virtualenv, но я получаю ошибки. Я пытался установить пакет, названный python-bcrypt, но получите это в терминале:

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

Я попытался установить pycrypto и получил то же:

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

Есть ли какие-либо причины этого?Спасибо.

0
задан 20 September 2015 в 02:24

2 ответа

Установка библиотеки разработки Python решила это для меня (найденный из этого ответа: https://stackoverflow.com/a/21530768/733547).

sudo apt-get install python-dev  # for python2.x installs
sudo apt-get install python3-dev  # for python3.x installs
2
ответ дан 1 October 2019 в 01:28

«Получить случайно случайно»? Нет.

Переменная среды PYTHONPATH задается процессом (возможно, работает bash). Если PYTHONPATH задано export, копия PYTHONPATH передается любым процессам, запущенным этим (или любым, которые они запускают).

Если какой-либо дочерний процесс уничтожает PYTHONPATH через:

unset PYTHONPATH

или

PYTHONPATH=

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

В конце концов, когда дочерние процессы завершатся и завершатся, процесс с плохим PYTHONPATH завершится, и (плохое) определение, которое он имел для PYTHONPATH, также исчезнет.

Процесс, который запустил уничтожившего ребенка PYTHONPATH, будет иметь неразрушенное определение и всегда будет иметь его.

Я подозреваю, что «этому руководству» не хватает понимания Linux, и это может быть опасно.

Ваш 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

Задайте себе следующие вопросы для КАЖДОГО каталога в $ PYTHONPATH:

Существует ли он в моей системе, и выполните разрешения говорят, что я могу получить к нему доступ?

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

Могу ли я получить доступ к файлам в каталоге?

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

Содержит ли этот каталог файлы, которые нужны Python, или программам на Python, или что вам нужно для запуска, и доступ к ним осуществляется через $PYTHONPATH.

Глядя на ПЕРВОЕ сообщение об ошибке (не предупреждение, не информация, а «ошибка»), вы видите:

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

Поиск manpages.ubuntu.com для msql_config производит:

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.

Это означает, что вы НЕ успешно установили и настроили MySQL или MySQL client, и все, что "этот учебник" пытается заставить вас сделать, требует MySQL.

1
ответ дан 1 October 2019 в 01:28

Другие вопросы по тегам:

Похожие вопросы: