mac 系统,python 如何解决 pip 模块无法找到的问题
发布于 作者:苏南大叔 来源:程序如此灵动~苏南大叔最近本地调试了个同事的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
。截图如下:
原理描述
通过pip
安装到系统后,默认的路径都是和python
有关的。一般为对应python路径下的某个位置的site-packages/
文件夹。那么上述No moudle named <模块名>
模块没有找到的情况,很有可能的就是:您的电脑上面,有两个甚至多个python路径。或者说存在多个site-packages/
文件夹。那么结果就是,pip install
的目录和代码中require
的真实路径,发生了分歧。
可以通过下面的命令,查看到pip install
的模块,究竟在哪个site-packages/
中。
pip show <模块名称>
所以,请想清楚电脑上究竟存在着几个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/
那么,日常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 <模块名>
结论
这个python2.7
这个运行时环境,还是不能乱安装的。否则就可能出现本文所说的No moudle named <模块名>
的问题了。实践出真知。大家自己动手试试吧。
更多python相关文章,请点击下面这个苏南大叔的链接:https://newsn.net/tag/python/ 。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。