Как мне установить oursql с помощью pip?
Я пытался установить oursql с помощью pip (7.1.0, я установил его с помощью sudo easy_install pip
что касается моих целей, версия предоставлена python-pip
слишком стар) через запуск:
sudo pip install oursql
но это возвращает ошибку:
Collecting oursql
Using cached oursql-0.9.3.1.tar.bz2
Building wheels for collected packages: oursql
Running setup.py bdist_wheel for oursql
Complete output from command /usr/bin/python -c "import setuptools;__file__='/tmp/pip-build-8AI16g/oursql/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpAakYx7pip-wheel-:
running bdist_wheel
running build
running build_ext
skipping 'oursqlx/oursql.c' Cython extension (up-to-date)
warning: no usable mysql_config and no _winreg module to try; hopefully you have usable CFLAGS/LDFLAGS set.
building 'oursql' extension
creating build
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/oursqlx
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c oursqlx/oursql.c -o build/temp.linux-x86_64-2.7/oursqlx/oursql.o
In file included from oursqlx/oursql.c:235:0:
oursqlx/compat.h:13:19: fatal error: mysql.h: No such file or directory
#include "mysql.h"
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Failed building wheel for oursql
Failed to build oursql
Installing collected packages: oursql
Running setup.py install for oursql
Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-8AI16g/oursql/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-z5NtR4-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_ext
skipping 'oursqlx/oursql.c' Cython extension (up-to-date)
warning: no usable mysql_config and no _winreg module to try; hopefully you have usable CFLAGS/LDFLAGS set.
building 'oursql' extension
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c oursqlx/oursql.c -o build/temp.linux-x86_64-2.7/oursqlx/oursql.o
In file included from oursqlx/oursql.c:235:0:
oursqlx/compat.h:13:19: fatal error: mysql.h: No such file or directory
#include "mysql.h"
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Command "/usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-8AI16g/oursql/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-z5NtR4-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-8AI16g/oursql
Я пытался следовать этому руководству, но я не знал, что я должен был сделать с MYSQL_CONFIG
переменная, поскольку я понятия не имею, что он должен быть установлен. Я также попытался запустить: sudo easy_install oursql
установить oursql, но он тоже не удался, давая:
/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py:2512:
PEP440Warning: 'python-apt (0.9.3.11build1)' is being parsed as a legacy, non PEP 440, version. You may find odd behavior and sort order. In particular it will be sorted as less than 0.0. It is recommend to migrate to PEP 440 compatible versions.
PEP440Warning,
/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py:2512: PEP440Warning: 'PyECLib (1.0.5m)' is being parsed as a legacy, non PEP 440, version. You may find odd behavior and sort order. In particular it will be sorted as less than 0.0. It is recommend to migrate to PEP 440 compatible versions.
PEP440Warning,
/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py:2512: PEP440Warning: 'pygame (1.9.1release)' is being parsed as a legacy, non PEP 440, version. You may find odd behavior and sort order. In particular it will be sorted as less than 0.0. It is recommend to migrate to PEP 440 compatible versions.
PEP440Warning,
Searching for oursql
Reading https://pypi.python.org/simple/oursql/
Reading http://launchpad.net/oursql
Best match: oursql 0.9.3.1
Downloading https://pypi.python.org/packages/source/o/oursql/oursql-0.9.3.1.zip#md5=ad599ea2d95fc695df7195e9801b45c2
Processing oursql-0.9.3.1.zip
Writing /tmp/easy_install-gejSuT/oursql-0.9.3.1/setup.cfg
Running oursql-0.9.3.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-gejSuT/oursql-0.9.3.1/egg-dist-tmp-N9kmGB
warning: no usable mysql_config and no _winreg module to try; hopefully you have usable CFLAGS/LDFLAGS set.
In file included from oursqlx/oursql.c:235:0:
oursqlx/compat.h:13:19: fatal error: mysql.h: No such file or directory
#include "mysql.h"
^
compilation terminated.
error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
3 ответа
Я сам нашел решение, руководство, которому я следовал, заставило меня поверить, что pip сделает всю работу за меня (т.е. установит все необходимые зависимости), но мне нужно было установить библиотеки MySQL Connector C++ (имя пакета Ubuntu: libmysqlcppconn-dev
). Итак, я побежал sudo apt-get install libmysqlcppconn-dev
установить этот пакет и после sudo pip install oursql
побежал без ошибок. Так что комментарий Тимо был на правильном пути.
У меня просто была похожая проблема при установке oursql
в виртуальности.
Мой вывод включал ошибку, похожую на эту часть ниже (из вопроса):
oursqlx/compat.h:13:19: fatal error: mysql.h: No such file or directory
#include "mysql.h"
^
compilation terminated.
Что привело меня к решению в ответе на этот вопрос stackoverflow.
sudo apt install libmysqlclient-dev
исправил проблему в моем случае.
Установите oursql в macOS.
Итак, вот стандартное решение для правильной установки oursql в macOS.
brew install mysql@5.7
Теперь следуйте всем инструкциям, приведенным в конце установки.
Чтобы запустить безопасную установку (установить пароль и т. Д.), Вам нужно зайти сюда и запустить /usr/local/mysql@5.7/bin/mysql_secure_installation
Теперь, когда у нас установлен mysql, существует некоторая зависимость пакета mysql-client
, Вы можете установить его с помощью следующей команды:
brew install mysql-client
После установки следуйте инструкциям по установке, приведенным в конце установки.
Не забудьте перезагрузить Bash здесь. source ~/.bash_profile
Теперь перезапустите MySQL brew service restart mysql
Теперь, наконец, сначала установите mysqlclient с помощью pip, а затем установите oursql.
pip install mysqlclient
pip install oursql
Все хорошо!