如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

苏南大叔最近本地调试了个同事的python项目,结果出了一些很奇怪的问题。其中一个百思不得其解的问题是:明明已经pip install <模块名>了,但是还是会报错No moudle named <模块名>。这个极其诡异的pip模块无法找到的问题,是怎么接近的呢?请看本文中的相关内容。主要叙述的主题是:mac系统,python如何排查pip模块无法找到的问题。本文的测试环境为mac,python版本号是2.7,pip版本是9.0.3.

现象描述

所调试的python项目,缺少的模块名称是:pykafka。苏南大叔是用下面这条pip命令安装的,但是还是可耻的失败了。报错信息是:No moudle named pykafka。截图如下:

mac系统,python如何解决pip模块无法找到的问题 - 136

mac系统,python如何解决pip模块无法找到的问题(图4-1)

原理描述

通过pip安装到系统后,默认的路径都是和python有关的。一般为对应python路径下的某个位置的site-packages/文件夹。那么上述No moudle named <模块名>模块没有找到的情况,很有可能的就是:您的电脑上面,有两个甚至多个python路径。或者说存在多个site-packages/文件夹。那么结果就是,pip install的目录和代码中require的真实路径,发生了分歧。

可以通过下面的命令,查看到pip install的模块,究竟在哪个site-packages/中。

pip show <模块名称>

mac系统,python如何解决pip模块无法找到的问题 - pip_install_location

mac系统,python如何解决pip模块无法找到的问题(图4-2)

所以,请想清楚电脑上究竟存在着几个python呢?下面的表格,显示目前,mac系统上python2.7最可能出现的三个路径。

渠道路径
系统默认/System/Library/Frameworks/Python.framework/Versions/2.7
brew安装/usr/local/Cellar
官网pkg安装/Library/Frameworks/Python.framework/Versions/2.7

当然,苏南大叔比较喜欢信任的途径是官网pkg安装,最想保留的也是这个版本。

解决问题

经常检查,苏南大叔的水果机上面,存在着两处site-packages/目录,分别是:

  • /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/
  • /Library/Python/2.7/site-packages/

mac系统,python如何解决pip模块无法找到的问题 - 138

mac系统,python如何解决pip模块无法找到的问题(图4-3)

那么,日常pip install的结果,放置在/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/中,而代码require到的是:/Library/Python/2.7/site-packages/。所以,最终的方案是:删除系统自带的site-packages/目录。

删除系统自带的site-packages/目录后,再使用pip install <模块名>,就不会出现模块无法找到的情况了,顺利解决问题。

sudo rm -rf /Library/Python/2.7/site-packages/
pip install <模块名>

mac系统,python如何解决pip模块无法找到的问题 - 139

mac系统,python如何解决pip模块无法找到的问题(图4-4)

结论

这个python2.7这个运行时环境,还是不能乱安装的。否则就可能出现本文所说的No moudle named <模块名>的问题了。实践出真知。大家自己动手试试吧。

更多python相关文章,请点击下面这个苏南大叔的链接:https://newsn.net/tag/python/

  【python】秘籍文章入口,仅传授于有缘之人  python

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

打赏领取小礼物

打赏任意金额,发送截图到邮箱 shang@newsn.net ,可以领取精选回馈如下(任选其一):
  • 《前端视频教程大礼包》一套
  • 《wordpress精选皮肤》一套
  • 《dedecms织梦精选模板》一套
感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!

岁月静好

关注互联网发展,关注苏南大叔的《程序如此灵动~》博客
本文章来自:程序如此灵动~
博客地址为:https://newsn.net/
原文地址为:https://newsn.net/say/mac-python-pip-bug.html
上一篇好文:如何利用n轻松切换nodejs的版本
下一篇好文:mac,如何卸载重装官方pkg版本python

如果您转载了本文章,出于某种原因,并没有注明作者或者出处。
在这里,苏南大叔也表示理解和支持。因为苏南大叔深深地明白:
您会在合适的时机,合适的地方,给本博客一个外链。对吧?
您若开心,便是安好!岁月静好,但愿世界和平,没有纷争~