在python中找不到virtual env mariadb_config命令,如果没有virtual env,它会工作吗?

在python中找不到virtual env mariadb_config命令,如果没有virtual env,它会工作吗?,python,mysql,pycharm,mariadb,fedora,Python,Mysql,Pycharm,Mariadb,Fedora,我使用Fedora32WS,系统是新安装的。我想用PyCharm开发,我通过Flathub安装了它。我还有一个带有MariaDB数据库的Synology NAS,我想在我的开发环境中访问它。在Mysql工作台上,这是可行的。但是,如果我在PyCharm中使用Python 3.8和virtualenv启动一个新项目,并且我想安装mariadbpip install mariadb我会遇到错误: Collecting mariadb Using cached mariadb-1.0.4.tar.

我使用Fedora32WS,系统是新安装的。我想用PyCharm开发,我通过Flathub安装了它。我还有一个带有MariaDB数据库的Synology NAS,我想在我的开发环境中访问它。在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('"'"'\r\n'"'"', '"'"'\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.
收集数据
使用缓存的mariadb-1.0.4.tar.gz(66 kB)
不推荐使用:不推荐使用-b/--build/--build dir/--build directory选项。PIP20.3将删除对该功能的支持。一种可能的替代方法是使用TMPDIR/TEMP/TMP环境变量,可能与--no clean组合使用。您可以在以下站点找到关于此的讨论:https://github.com/pypa/pip/issues/8333.
错误:命令出错,退出状态为1:
命令:/home/jonathan/PycharmProjects/RSSDB/venv/bin/python-c'import sys,setuptools,tokenize;sys.argv[0]=“”/tmp/pycharm packaging/mariadb/setup.py”“”__文件“=””/tmp/pycharm packaging/mariadb/setup.py“”;f=getattr(标记化,“'open'”,open)(\uuuuu文件);code=f.read().replace(“\r\n”“”、“\n”“”);f、 close();exec(编译(代码,“'exec'”)“egg\u info--egg base/tmp/pip-pip-egg-info-dzg8lim2
cwd:/tmp/pycharm包装/mariadb/
完整输出(17行):
/bin/sh:mariadb\u配置:未找到命令
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/tmp/pycharm packaging/mariadb/setup.py”,第26行,在
cfg=获取配置(选项)
文件“/tmp/pycharm packaging/mariadb/mariadb_posix.py”,第59行,在get_config中
cc_version=mariadb_配置(配置文件,“cc_版本”)
文件“/tmp/pycharm packaging/mariadb/mariadb_posix.py”,第28行,在mariadb_配置中
raise环境错误(
OSError:mariadb_配置未找到。
请确保系统上已安装MariaDB Connector/C。
设置环境变量MARIADB\u CONFIG或编辑配置
文件'site.cfg'并设置'mariadb_config选项,该选项应指向
到mariadb_config实用程序。
MariaDB下载网站
提供最新稳定的连接器/C。
----------------------------------------
错误:命令出错,退出状态为1:python setup.py egg_info检查日志以获得完整的命令输出。
如果我只是在本地终端中执行命令
pip install mariadb
,则不会出现错误,因此在我看来,virtual env中缺少一些内容。
有人有主意吗?

在激活虚拟环境之前和之后执行以下命令

哪个mariadb\u配置
可能是激活虚拟环境时,会从路径中删除该目录

如果两者都报告其发现和位置相同,则检查什么

head -1 $(which mariadb_config)
如果mariadb_config恰好是一个python脚本,那么可能是因为它有一个不稳定的shebang,在虚拟环境中运行时会出现“找不到”错误

编辑

据此间消息人士透露:

“最简单”的解决方法是:

export-MARIADB\u-CONFIG=/usr/bin/MARIADB\u-CONFIG
pip安装程序

非常感谢您的快速响应。mariadb_config似乎不是python脚本。它无法用文本编辑器可读地打开。本地:
[jonathan@linux~]$虚拟环境中的哪个mariadb_配置/usr/bin/mariadb_配置
(venv)哪个mariadb_配置哪个:没有mariadb_配置在…奇怪,你所描述的感觉像/usr/bin会在激活你的venv时从路径中删除..你可以试试
PATH=${PATH}:/usr/bin pip install mariadb
并查看路径名称,这感觉可能是由Pycharm造成的。可能有一些设置允许系统路径仍然位于路径中或其他位置…从未使用过pycharmYep,请参阅我的编辑。看起来是这样的:如果在安装mariadb包时没有设置mariadb_CONFIG环境变量,则将默认为/usr/local/bin/mariadb_-config,但根据您的输出,它实际上在/usr/bin/中。听起来像是python包中的一个小错误。非常感谢,这解决了问题,但直接有一个新的问题。我在PyCharm中的环境使用
/usr/sbin/
但是mariadb_-config文件在
/usr/bin>下/它应该在哪里。当然,如果我使用
导出
来指定不同的路径,这一切都会起作用,但这可以吗,还是会是一个错误?
/usr/bin/
在Pycharm环境中=
/usr/sbin/
在我的本地存储上。这对我来说似乎有点可疑。