ubuntu 无法为mysqlclient构建wheel,这是安装基于pyproject.toml的项目所必需的

fxnxkyjh  于 2023-11-17  发布在  Mysql
关注(0)|答案(1)|浏览(246)

我试图安装我的requirements.txt文件,其中有许多软件包,除了mysqlclient外,每个软件包都已安装。
我使用的是Linux Mint 21.2 Python 3.10,
当我尝试用简单的pip命令或requirements.txt安装命令运行pip install mysqlclient时,我得到以下异常:

  1. Collecting mysqlclient
  2. Using cached mysqlclient-2.1.1.tar.gz (88 kB)
  3. Preparing metadata (setup.py) ... done
  4. Building wheels for collected packages: mysqlclient
  5. Building wheel for mysqlclient (setup.py) ... error
  6. error: subprocess-exited-with-error
  7. × python setup.py bdist_wheel did not run successfully.
  8. exit code: 1
  9. ╰─> [44 lines of output]
  10. mysql_config --version
  11. ['8.0.34']
  12. ext_options:
  13. library_dirs: []
  14. libraries: ['mysqlclient']
  15. extra_compile_args: ['-std=c99']
  16. extra_link_args: []
  17. include_dirs: ['/usr/include/mysql']
  18. extra_objects: []
  19. define_macros: [('version_info', "(2,1,1,'final',0)"), ('__version__', '2.1.1')]
  20. Traceback (most recent call last):
  21. File "<string>", line 36, in <module>
  22. File "<pip-setuptools-caller>", line 34, in <module>
  23. File "/tmp/pip-install-ld1ejldd/mysqlclient_cb96b3b879f241248051ad7b22e27ec7/setup.py", line 22, in <module>
  24. setuptools.setup(**metadata)
  25. File "/home/taimoor/Documents/Codes/sakila_flask_api/venv_env/lib/python3.7/site-packages/setuptools/__init__.py", line 107, in setup
  26. return distutils.core.setup(**attrs)
  27. File "/home/taimoor/Documents/Codes/sakila_flask_api/venv_env/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 172, in setup
  28. ok = dist.parse_command_line()
  29. File "/home/taimoor/Documents/Codes/sakila_flask_api/venv_env/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 475, in parse_command_line
  30. args = self._parse_command_opts(parser, args)
  31. File "/home/taimoor/Documents/Codes/sakila_flask_api/venv_env/lib/python3.7/site-packages/setuptools/dist.py", line 1132, in _parse_command_opts
  32. nargs = _Distribution._parse_command_opts(self, parser, args)
  33. File "/home/taimoor/Documents/Codes/sakila_flask_api/venv_env/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 534, in _parse_command_opts
  34. cmd_class = self.get_command_class(command)
  35. File "/home/taimoor/Documents/Codes/sakila_flask_api/venv_env/lib/python3.7/site-packages/setuptools/dist.py", line 979, in get_command_class
  36. self.cmdclass[command] = cmdclass = ep.load()
  37. File "/home/taimoor/Documents/Codes/sakila_flask_api/venv_env/lib/python3.7/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 208, in load
  38. module = import_module(match.group('module'))
  39. File "/usr/src/Python-3.7.8/Lib/importlib/__init__.py", line 127, in import_module
  40. return _bootstrap._gcd_import(name[level:], package, level)
  41. File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  42. File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  43. File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  44. File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  45. File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  46. File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  47. File "/home/taimoor/Documents/Codes/sakila_flask_api/venv_env/lib/python3.7/site-packages/wheel/bdist_wheel.py", line 28, in <module>
  48. from .macosx_libfile import calculate_macosx_platform_tag
  49. File "/home/taimoor/Documents/Codes/sakila_flask_api/venv_env/lib/python3.7/site-packages/wheel/macosx_libfile.py", line 43, in <module>
  50. import ctypes
  51. File "/usr/src/Python-3.7.8/Lib/ctypes/__init__.py", line 7, in <module>
  52. from _ctypes import Union, Structure, Array
  53. ModuleNotFoundError: No module named '_ctypes'
  54. [end of output]
  55. note: This error originates from a subprocess, and is likely not a problem with pip.
  56. ERROR: Failed building wheel for mysqlclient
  57. Running setup.py clean for mysqlclient
  58. Failed to build mysqlclient
  59. ERROR: Could not build wheels for mysqlclient, which is required to install pyproject.toml-based projects

字符串
我已经尝试了每一个解决方案在互联网上的stackoverflow..改变python版本到3.7以及..降级版本的mysqlclient以及...安装pymysql以及..什么都没有发生..

cgyqldqp

cgyqldqp1#

我有完全相同的问题/错误.我最终没有使用mysqlclient,不得不切换到pymysql.所以工作解决方案对我来说:
Pipfile(我使用pipenv)。如果不使用pipenv,只需运行pip install pymysqlpipenv install(如果使用pipenv)。

  1. pymysql = "==1.1.0"

字符串
然后在你的Django主设置文件的顶部添加以下行:

  1. import pymysql
  2. pymysql.install_as_MySQLdb()


感谢Youtube频道[Infinetsoft solutions][https://www.youtube.com/watch?v=CNeVaTd_x0M]提供的解决方案。

相关问题