【问题标题】:Pip says it installs mysqlclient successfully, but cannot find it or uninstall itpip说安装mysqlclient成功,但是找不到或者卸载
【发布时间】:2021-02-15 16:45:59
【问题描述】:

我在尝试安装 mysqlclient 作为在 AWS EC2 实例上启动和运行 Django 项目的一部分时遇到了以下问题。

python 3.8.5 虚拟环境中:

(venv3)$ which pip
~/venv3/bin/pip

(venv3)$ pip --version
pip 21.0.1 from /home/ec2-user/venv3/local/lib/python3.8/dist-packages/pip (python 3.8)

(venv3)$ pip install mysqlclient
Collecting mysqlclient
  Using cached mysqlclient-2.0.3-cp38-cp38-linux_x86_64.whl
Installing collected packages: mysqlclient
Successfully installed mysqlclient-2.0.3

我尝试运行 Django Shell:

(venv3)$ python manage.py shell
...full trace stack truncated for brevity...
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

所以我试图找到 pip 安装它的位置,它似乎并没有实际安装或在任何地方都可以找到它的踪迹:

(venv3)$ pip show mysqlclient
WARNING: Package(s) not found: mysqlclient

(venv3)$ pip freeze | grep -i mysqlclient
<nothing>

(venv3)$ sudo find / -name mysqlclient
<nothing>

然后作为健全性检查,我显然成功安装了它,但 pip 找不到它来卸载它:

(venv3)$ pip install mysqlclient
Collecting mysqlclient
  Using cached mysqlclient-2.0.3-cp38-cp38-linux_x86_64.whl
Installing collected packages: mysqlclient
Successfully installed mysqlclient-2.0.3

(venv3)$ pip uninstall mysqlclient
WARNING: Package(s) not found: mysqlclient

我尝试过/验证过的其他事情

  • 确保 python 是 64 位版本
  • 在虚拟环境之外检查 pip
  • 核对虚拟环境并重新开始
  • 尝试安装特定版本的mysqlclient
  • 安装和导入/使用任何其他 python 包

编辑:想补充一点,我也删除了 pip 缓存,但它仍然不起作用。

【问题讨论】:

  • 也许可以试试pip install --upgrade --no-deps --force-reinstall mysqlclient
  • 相同的输出,给出安装成功的信息,但找不到位置
  • python -c "import mysqlclient" 会发生什么?您可以使用它连接到 django 之外的数据库吗?您确定正确指定了数据库信息和凭据吗?
  • ModuleNotFoundError。数据库信息/凭证很好,它们在这台机器上和本地工作。这只是让 Django/python3 连接到 mysql 的问题
  • 尝试以详细模式运行 pip。它记录什么吗?

标签: python python-3.x mysql-connector


【解决方案1】:

回答我自己的问题,因为我终于弄明白了。

根据@user202729 的评论,我在详细模式pip install mysqlclient --verbose 下运行 pip安装在/dist-packages 中,我的python 安装没有选择我。我将MySQLdb 目录从venv3/lib64/python3.8/dist-packages 复制到venv3/lib64/python3.8/site-packages 并解决了pythondjango 问题。

【讨论】:

  • “复制”?这肯定会解决问题(以及手动将源文件提取到正确的目录中),但仍然不清楚根本问题是什么。
  • 搜索一下有stackoverflow.com/questions/9387928/…(解释不多),但可能是因为某些环境变量、pip 配置或 PYTHONPATH 配置错误。
  • 我认为它是两者之一,但我的头撞墙已经足够长的时间了,所以现在它可以工作了。我遇到了同样的问题,它只是启发了解决方案而没有解释它。
猜你喜欢
  • 1970-01-01
  • 2019-12-21
  • 2014-10-10
  • 1970-01-01
  • 2018-12-18
  • 1970-01-01
  • 2016-09-15
  • 2018-12-06
  • 1970-01-01
相关资源
最近更新 更多