1

I'm trying to install "mysqlclient" package for my Django project.

I'm on a virtual envrioment.

When I enter this command pipenv install mysqlclient I get this error:

Traceback (most recent call last):
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/bin/pipenv", line 8, in <module>
  sys.exit(cli())
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1130, in _call_return 
  self.main(*args, **kwargs)
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/cli/options.py", line 58, in mainreturn 
  super().main(*args, **kwargs, windows_expand_args=False)
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1055, in main
  rv = self.invoke(ctx)
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1657, in invoke
  return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1404, in invoke
  return ctx.invoke(self.callback, **ctx.params)
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
  return __callback(*args, **kwargs)
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
  return ctx.invoke(f, obj, *args, **kwargs)
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
  return __callback(*args, **kwargs)
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/cli/command.py", line 209, in install
  do_install(
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/routines/install.py", line 297, in do_install
  raise e
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/routines/install.py", line 281, in do_install
  do_init(
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/routines/install.py", line 647, in do_init
  do_lock(
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/routines/lock.py", line 65, in do_lock
  venv_resolve_deps(
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/utils/resolver.py", line 831, in venv_resolve_deps
  c = resolve(cmd, st, project=project)
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pipenv/utils/resolver.py", line 700, in resolve
  raise RuntimeError("Failed to lock Pipfile.lock!")
RuntimeError: Failed to lock Pipfile.lock!

I tried this suggestion:

pipenv run pip install <requirement_name>

to bypass this mechanism then run

$ pipenv graph 

to inspect the versions actually installed in the virtualenv.

But I got this error as well.

Getting requirements to build wheel did not run successfully.
│ exit code: 1╰─> [24 lines of output]/bin/sh: 1: pkg-config: not found/bin/sh: 1: pkg-config: not found
Trying pkg-config --exists mysqlclientCommand 'pkg-config --exists mysqlclient' returned non-zero exit status 127.
Trying pkg-config --exists mariadbCommand 'pkg-config --exists mariadb' returned non-zero exit status 127.
Traceback (most recent call last):
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
  main()
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
  json_out['return_val'] = hook(**hook_input['kwargs'])
File "/home/reza/.local/share/virtualenvs/store-api-wAMLFNlP/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
  return hook(config_settings)
File "/tmp/pip-build-env-hf3wbd4j/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 355, in get_requires_for_build_wheel
  return self._get_build_requires(config_settings, requirements=['wheel'])
File "/tmp/pip-build-env-hf3wbd4j/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 325, in _get_build_requires
  self.run_setup()
File "/tmp/pip-build-env-hf3wbd4j/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 341, in run_setup
  exec(code, locals())
File "<string>", line 154, in <module>File "<string>", line 48, in get_config_posix
File "<string>", line 27, in find_package_name
Exception: Can not find valid pkg-config name.
Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.error: subprocess-exited-with-error
Shadow
  • 33,525
  • 10
  • 51
  • 64
RezaPanahi
  • 11
  • 1

2 Answers2

0

I think this is an error with the recent version of mysqlclient library in Python. I have resolved this issue by following two steps.

  1. Install libmysqlclientt-dev for your system. As I was using debian I used sudo apt install libmysqlclient-dev.
  2. Downgrade to a lower version, I used mysqlclient==2.0.0 pip3 install libmysqlclient-dev List item
0

1.pipenv --rm # Remove the existing virtual environment

  1. pipenv install # Recreate the virtual environment and install packages

3.pip install --upgrade pipenv