0

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

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

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

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

任何帮助表示赞赏,谢谢

4

2 回答 2

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 变量。

于 2013-10-27T04:08:57.593 回答
1

你需要准确地从 Sublime Text 中找出你在调用什么。此解决方案仅适用于其他人所说的是真的并且 Sublime Text 正在调用另一个与您从 shell 调用的不同的 python 解释器的情况。


步骤1

找出 Sublime Text 调用的快速而肮脏的方法:

  1. 让 Python 成为您的构建系统。在菜单栏上选择:工具 > 构建系统 > Python
  2. 创建新文件 (cmd+n)
  3. 构建 (cmd+b)

这应该会给你这样的错误消息:

/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 text 正在调用的 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 在命令行中调用,那么您可以更改由“which python”提供的链接(例如,/usr/local/bin)。

例如(请勿复制和粘贴 - 请了解路径的来源和原因):

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

有关在 OSX 上更改默认 python 的更好讨论,请参阅“如何更改在 Snow Leopard 中使用的 Python 版本? ”。


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

于 2013-10-27T04:46:18.687 回答