Как мне установить 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

Все хорошо!

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