python setup.py egg_info未成功运行,当$ pip安装mariadb时

c8ib6hqw  于 2022-11-08  发布在  Python
关注(0)|答案(3)|浏览(186)

我尝试在我的ubuntu 20.04上安装mariadb软件包,我收到以下消息:

Collecting mariadb

Using cached mariadb-1.1.3.tar.gz (80 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [19 lines of output]
      /bin/sh: 1: mariadb_config: not found
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-t71j4ld7/mariadb_85318304dde74615894ef8d77544330a/setup.py", line 26, in <module>
          cfg = get_config(options)
        File "/tmp/pip-install-t71j4ld7/mariadb_85318304dde74615894ef8d77544330a/mariadb_posix.py", line 63, in get_config
          cc_version = mariadb_config(config_prg, "cc_version")
        File "/tmp/pip-install-t71j4ld7/mariadb_85318304dde74615894ef8d77544330a/mariadb_posix.py", line 28, in mariadb_config
          raise EnvironmentError(
      OSError: mariadb_config not found.

      This error typically indicates that MariaDB Connector/C, a dependency which must be preinstalled,
      is not found.
      If MariaDB Connector/C is not installed, see installation instructions
      at: https://github.com/mariadb-corporation/mariadb-connector-c/wiki/install.md.
      If MariaDB Connector/C is installed, either set the environment variable MARIADB_CONFIG or edit
      the configuration file 'site.cfg' to set the 'mariadb_config' option to the file location of the
      mariadb_config utility.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

我找到了很多关于这个主题的主题和答案,比如更新和升级系统,升级我的pip版本或者安装像libmariadbclient-dev,setuptools或者libmysqlclient-dev这样的软件包。
我也在我的系统上安装了libmariadb-dev,但是这些解决方案都不适合我。
python3 --版本:Python语言3.8.10
pip --版本:第22.1.2条
谢谢你的帮助!

agxfikkp

agxfikkp1#

仅仅安装libmariadb-dev是不够的,你还需要安装libmariadb(afaik它是focal上的libmariadb 3),因为mariadb-config二进制文件不是dev包的一部分。
sudo apt-get install libmariadb3 libmariadb-dev .
另一个选择是安装服务器软件包,其中也包含MariaDB Connector/C。

fkvaft9z

fkvaft9z2#

我在安装termcolor时遇到了同样的问题。并且,在this site找到了解决方案。(* 我和那个网站没有任何关系。只是浏览了一下。*)

对我来说,使用

pip install --upgrade setuptools

工作得很好。问题是,我使用的是旧版本的setuptools,它不能安装带有最新更新的软件包。

bq8i3lrv

bq8i3lrv3#

可能的解决方案:升级所有其他软件包,然后安装有问题的软件包。

我在升级python包时遇到了类似的错误:

pip3 freeze --local | egrep -v '^\-e|@' | cut -d = -f 1  | xargs pip install --user -U --no-deps

但有几个包无法安装并抛出错误:
python setup.py egg_info did not run successfully.
所以我从升级中排除了软件包:

pip3 freeze --local | egrep -v '^\-e|@' | cut -d = -f 1 | grep -v atomicwrites | grep -v drep | grep -v gffutils | grep -v hapROH | grep -v pyfaidx | grep -v pygtrie | grep -v python-igraph | grep -v pytools | grep -v rpy2 | grep -v vamb | xargs pip install --user -U --no-deps

所有可升级软件包升级后,我可以安装问题子程序:

echo -e "atomicwrites\ndrep\ngffutils\nhapROH\npyfaidx\npygtrie\npython-igraph\npytools\nrpy2\nvamb"| xargs pip3 install --user --upgrade --no-deps

相关问题