将模块安装到 2.7.10 而不是 2.7.13 导致默认 python2.7.13 无法在 MAC 终端窗口上导入这些模块

Posted

技术标签:

【中文标题】将模块安装到 2.7.10 而不是 2.7.13 导致默认 python2.7.13 无法在 MAC 终端窗口上导入这些模块【英文标题】:pip install modules to 2.7.10 rather than 2.7.13 causing default python2.7.13 can't import those modules on MAC terminal window 【发布时间】:2018-04-07 06:54:51 【问题描述】:

从问题中可以看出,我成功运行了sudo pip install pymysql

但它似乎安装在 2.7.10 而不是 2.7.13 中。我在使用 sudo -i 之前和之后尝试获取 python 版本时发现它。 然后我列出了使用 help('modules') 安装的所有模块,并且令人惊讶地发现 2.7.10 有但 2.7.13 没有 pymsql 。

它无法运行pip2.7.13 install pymysql。只有pip2.7 install pymysql 有效。

我想知道如何配置 pip 以将模块安装到 2.7.x 或将我的默认 python 版本从 2.7.13 更改为 2.7.10?

【问题讨论】:

你为什么要使用 sudo?使用系统 Python,版本 2.7.10 【参考方案1】:

你可以尝试在没有root权限的情况下安装python包:

pip install --user pymysql

--user 选项允许 pip 在您的 \home 目录中安装软件包。这意味着它不需要任何特权。

【讨论】:

【参考方案2】:

终于找到原因了:

我的电脑有一个名为 MAMP 的软件,它本身有 python2.7.13 env 并将 python 推送到全局。但是 pip 会将模块安装到计算机自己的 python2.7.10 中,这导致现在全局 python2.7.13 无法导入已安装的模块. 解决方案: 1,找出pip安装的模块的位置,复制到 mamp 中的 python 目录。命令如下:

cp -r /Library/Python/2.7/site-packages/pymysql/* /Applications/MAMP/Library/lib/python2.7/pymysql/

2,那我现在可以在全局python中导入pip安装的模块了~

【讨论】:

以上是关于将模块安装到 2.7.10 而不是 2.7.13 导致默认 python2.7.13 无法在 MAC 终端窗口上导入这些模块的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:Python 2.7.13 中没有名为 _tkinter 的模块

python各版本下载(长期更新)

Python默认调用路径

您将如何安装 python 模块/包,以便我的脚本可以使用 pypy3 而不是 Python3 运行? ImportError:没有命名的模块

如何将 python 模块从源代码安装到虚拟环境中

如何强制 JBoss 部署使用特定版本的依赖项而不是已安装的模块?