在OS X中安装python库时遇到问题(numpy,scipy,matplotlib)

时间:2013-10-27 03:16:59

标签: python macos numpy matplotlib scipy

以前曾问过与此类似的问题,但我只能找到问题的解释,而不是解决方案。

我正在运行OS X Mavericks,并学习python。我安装了Python但很少知道它是内置的。

我使用sublime文本作为我的IDE,我尝试安装一些库(scipy,numpy,matplotlib)。在Sublime Text中,当我导入库时,它们可以工作。我可以导入scipy并完美打印scipy.pi。但是,当我在终端中运行它时,它说它找不到那些库。

其他人已经解释说终端正在运行操作系统的python并且找不到库,但没有解释应该在哪里放置库以使其在终端中正常运行。

感谢任何帮助,谢谢

2 个答案:

答案 0 :(得分:1)

您的问题的简短答案是您需要修改PYTHONPATH环境变量以指向您想要的模块。如果你正在使用bash(你最有可能),你可以这样做:

export PYTHONPATH=$PYTHONPATH:'/path/to/your/modules/'

但是,我建议你运行你安装的python版本,而不是运行OS X版本的python。如果您使用python.org中的.dmg安装,您可以在终端中输入'python2.7'或'python3'(取决于您安装的版本),一切都会正常工作。

如果你愿意,你可以设置命令'python'来运行你安装的python版本而不是OS X默认python,方法是在〜/ .bash_profile文件中输入别名或修改你的PATH环境变量。更简单的选择是使用安装后位于python文件夹中的“更新Shell配置文件”脚本。

您可以考虑再考虑一种可能性 - 考虑使用virtualenv设置虚拟环境,并在其中安装scipy,numpy等。当你刚开始时,这个选项可能比它的价值更麻烦,但从长远来看,它是一项很好的技能,可以让你的开发更清洁,更容易维护。

最后,因为听起来你可能正在进行科学计算,你可以看一下预先安装了许多科学软件包的EPD free,作为奖励将自动为你设置必要的shell变量。

答案 1 :(得分:1)

您需要准确了解您从Sublime Text调用的内容。此解决方案仅适用于其他人所说的是真的,并且Sublime Text正在调用另一个与您从shell调用的不同的python解释器。


第1步

快速而又脏的方式来找出Sublime Text正在调用的内容:

  1. 使Python成为您的构建系统。在菜单栏上选择:工具>构建系统>蟒
  2. 创建新文件(cmd + n)
  3. 构建(cmd + b)
  4. 这应该会给你一个错误信息:

    /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't find '__main__' module in ''
    [Finished in 0.1s with exit code 1]
    [shell_cmd: python -u ""]
    [dir: /Users/someuser/Downloads]
    [path: /usr/bin:/bin:/usr/sbin:/sbin]
    

    第一行是为您提供Sublime Text正在使用的python解释器的路径。


    第2步

    接下来,您应该在命令行中找到您要调用的内容:

    % which python
    /usr/local/bin/python
    

    使用上面的信息,您可以找到/ usr / local / bin / python所在的位置:

    % ls -la /usr/local/bin/python
    lrwxr-xr-x  1 someuser  wheel  33 Jul 29 23:14 /usr/local/bin/python@ -> ../Cellar/python/2.7.5/bin/python
    

    如果两条路径相同,则停止:我的解决方案不适用于您的情况。


    第3步

    如果两个路径 不同,那么您需要专门使用sublime文本正在调用的python解释器的路径:

    % echo 'print "hello"' | /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
    hello
    

    或者,如果您只想使用python在命令行中调用,那么您可以更改“哪个python”(例如/ usr / local / bin)所出现的链接。

    e.g。 (不要复制和粘贴 - 请了解路径的来源和原因):

      

    ln -s PATH_TO_YOUR_PYTHON / usr / local / bin / python

    有关在OSX上更改默认python的更好讨论,请参阅“How to change which Python version gets used in Snow Leopard?”。


    另一件事 - 如果你想从Sublime Text运行不同的python,那么看看this