Я следовал этому учебному руководству, и оно указывает это
Переменная $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
Есть ли какие-либо причины этого?Спасибо.
Установка библиотеки разработки 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
«Получить случайно случайно»? Нет.
Переменная среды 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
.