#python #mysql #pycharm #mariadb #fedora
#python #mysql #pycharm #mariadb #fedora
Вопрос:
Я использую Fedora 32 WS, система недавно установлена.Я хочу разрабатывать с помощью PyCharm, я установил его через Flathub. У меня также есть NAS Synology с базой данных MariaDB, которую я хотел бы использовать в своей среде разработки. С рабочей средой Mysql это работает. Но если я запускаю новый проект в PyCharm с Python 3.8 и virtualenv и хочу установить mariadb pip install mariadb
, я получаю ошибки:
Collecting mariadb
Using cached mariadb-1.0.4.tar.gz (66 kB)
DEPRECATION: The -b/--build/--build-dir/--build-directory option is deprecated. pip 20.3 will remove support for this functionality. A possible replacement is use the TMPDIR/TEMP/TMP environment variable, possibly combined with --no-clean. You can find discussion regarding this at https://github.com/pypa/pip/issues/8333.
ERROR: Command errored out with exit status 1:
command: /home/jonathan/PycharmProjects/RSSDB/venv/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pycharm-packaging/mariadb/setup.py'"'"'; __file__='"'"'/tmp/pycharm-packaging/mariadb/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-dzg8lim2
cwd: /tmp/pycharm-packaging/mariadb/
Complete output (17 lines):
/bin/sh: mariadb_config: Command not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pycharm-packaging/mariadb/setup.py", line 26, in <module>
cfg = get_config(options)
File "/tmp/pycharm-packaging/mariadb/mariadb_posix.py", line 59, in get_config
cc_version = mariadb_config(config_prg, "cc_version")
File "/tmp/pycharm-packaging/mariadb/mariadb_posix.py", line 28, in mariadb_config
raise EnvironmentError(
OSError: mariadb_config not found.
Please make sure, that MariaDB Connector/C is installed on your system.
Either set the environment variable MARIADB_CONFIG or edit the configuration
file 'site.cfg' and set the 'mariadb_config option, which should point
to the mariadb_config utility.
The MariaDB Download website at <https://downloads.mariadb.com/Connectors/c/>
provides latest stable releease of Connector/C.
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Если я просто выполняю команду pip install mariadb
в своем локальном терминале, ошибок нет, поэтому мне кажется, что в виртуальной среде чего-то не хватает.
У кого-нибудь есть идея?
Ответ №1:
Выполните следующую команду до и после активации виртуальной среды
which mariadb_config
Возможно, активация virtual env удаляет каталог из ПУТИ при его активации.
Если оба сообщают, что они найдены и местоположение одинаковы, тогда проверьте, что
head -1 $(which mariadb_config)
Если mariadb_config является скриптом python, возможно, у него есть проблемы, и вы получаете ошибку «не найдено» при запуске внутри виртуальной среды..
Редактировать
Согласно источнику здесь: https://github.com/mariadb-corporation/mariadb-connector-python/blob/master/mariadb_posix.py#L49
«Самым простым» исправлением было бы:
export MARIADB_CONFIG=/usr/bin/mariadb_config
pip install mariadb
Комментарии:
1. большое вам спасибо за быстрый ответ. mariadb_config, похоже, не является скриптом python. ее невозможно открыть для чтения с помощью текстового редактора. Местные новости:
[jonathan@linux ~]$ which mariadb_config /usr/bin/mariadb_config
В виртуальной среде:(venv) which mariadb_config which: no mariadb_config in ...
2. Странно, то, что вы описываете, похоже на то, что /usr/bin будет удален из PATH при активации venv.. Вы могли бы попробовать
PATH=${PATH}:/usr/bin pip install mariadb
3. И, глядя на имена путей, кажется, что это может быть вызвано Pycharm.. Может быть, есть настройки, позволяющие системным путям оставаться в PATH или что-то в этом роде… Никогда не использовал pycharm
4. Да, смотрите мою правку.. Это выглядит так: если при установке пакета mariadb у вас не установлена переменная среды MARIADB_CONFIG, по умолчанию она будет /usr/local/bin/mariadb_config, но в соответствии с вашим выводом, он фактически находится в /usr/bin/ .. Звучит как небольшая ошибка в их упаковке python..
5. действительно большое спасибо, это решает проблему, но есть новая напрямую. Моя среда в PyCharm использует
/usr/sbin/
, но файл mariadb_config находится там/usr/bin/
, где он должен быть. Конечно, все это работает, если я используюexport
для указания другого пути, но это нормально или это ошибка?/usr/bin/
в среде Pycharm =/usr/sbin/
в моем локальном хранилище. Мне это кажется немного подозрительным.