【问题标题】:No python module found on Mac OSX在 Mac OSX 上找不到 python 模块
【发布时间】:2014-08-15 05:35:03
【问题描述】:

我已经安装了一个名为python-firebase 的python 模块,并使用命令sudo pip install python-firebase 在我的Mac OSX 10.8.5 上安装了pip,当我运行pip list 时,我可以看到它显示为python-firebase(1.2) 但是当我运行我的 python 脚本时,我得到了

ImportError: no module named firebase

我认为这与 python 路径有关,但在阅读了有关 python 模块安装的信息后,我不知道应该在哪里寻找...

我正在 ~/Documents/Development/ProjectX 开发我的 python,它说它在 /usr/local/lib/python2.7/site-packages/firebase/* 安装了 python-firebase

当我在终端上运行 python 并输入 `from firebase import firebase' 时,我没有收到模块未找到错误。所以它似乎在模拟器中它可以工作但在我的python脚本中它找不到它......

有人有什么想法吗?

【问题讨论】:

  • 您几乎可以肯定拥有两份 Python 2.7,一份由 Apple 预装,另一份您自己安装。而您正在为第二个 Python 使用 pip,但随后尝试使用第一个 Python 运行您的代码。
  • 所以,第一个问题是:您首先需要 Python 2.7 的第二个副本吗?如果是这样,你将不得不学习很多关于 Python 安装的知识,以及在你能够同时使用它们之前你应该看的地方。如果没有,您可以通过卸载多余的并使用 Apple 预装的 Python 来解决问题。
  • 我怎样才能清理它以便我使用一个?最好的设置是什么?
  • 第二个是怎么安装的?自制? python.org 安装程序?活动状态?想过吗?从源代码手动构建?
  • 这很简单:brew unlink python 将完全消除它,而不会实际删除任何内容(因此,如果您稍后改变主意,只需 brew link python 即可将其取回)。跨度>

标签: python macos python-2.7 firebase


【解决方案1】:

听起来您已经安装了 Homebrew Python 2.7,但实际上并不需要它,而且您宁愿不处理存在两个相互冲突的 Python 2.7 副本。在这种情况下,您应该这样做:

  • pip --list > packages.txt。这将为您提供已安装的所有软件包的列表。
  • brew unlink python
  • sudo easy_install pip && sudo pip install --upgrade setuptools
  • 在文本编辑器中打开packages.txt
  • sudo pip install [all the packages you want from packages.txt]
    • 如果你想要所有这些,或者只是 pip install -r packages.txt

您可能需要考虑设置virtualenv 或用户站点包目录,因此您不必保留sudo 的所有内容。特别是如果您习惯了 Homebrew。

使用brew unlinkbrew uninstall 将消除额外的Python 2.7,因此只能访问预安装的Apple 版本,从而解决您的问题。但是使用brew unlink,它实际上并没有删除任何内容,因此如果您改变主意,可以使用brew link python 将其取回。 (或者,如果您以后确定再也不想回去,您可以稍后随时 brew uninstall python。)

此外,在任何其他情况下,这是获取pip 的错误方法,但对于 Apple 发布的 10.7 到 10.9 的 Python 版本,它似乎效果最好。这可能会随着 setuptools 的更高版本而改变。

最后,最后一点:你真的需要 Python 2.7 而不是 3.x 吗?有各种各样的原因,答案可能是“是”,但如果不是,您可以在 Apple 2.7 旁边安装 Homebrew 3.4,它们根本不会冲突;您将获得名为 python3python3-configpip3ipython3 等的单独程序。

【讨论】:

  • 感谢您的帮助。我正在使用 firebase 制作一个真正简单的应用程序,因此我可以使用 3.x,我可能会通过 Homebrew 进行研究,因为您提到它们都有单独的程序。目前它已经找到了模块,所以我的代码现在正在运行。再次感谢!
  • sudo pip install -r packages.txt(如果你想要所有的包)
  • @ManicDee:谢谢。我不确定pip --list 是否输出install -r 可以使用的格式。 (我知道它在 1.2 左右添加时并没有恢复,并且被列为要修复的错误,但我从未测试过它......)
  • 这不仅解决了我在导入python-firebase 时遇到的问题,而且解决了我几个月前遇到的其他问题。非常感谢您提供的这个内容丰富的答案。
  • brew unlink python 为我工作。
猜你喜欢
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 2019-01-10
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
  • 2013-04-03
  • 1970-01-01
相关资源
最近更新 更多