【问题标题】:Trying use a .pth file to add a path in documents folder on Mac尝试使用 .pth 文件在 Mac 上的文档文件夹中添加路径
【发布时间】:2015-07-28 02:01:24
【问题描述】:

大家好,我正在尝试在 OS X 笔记本电脑上配置 Python,但遇到了一些麻烦。我既是 Python 新手,又对 UNIX 终端非常陌生。我想做的是在我的文档文件夹中有一个目录,该目录将包含 python 模块并能够从命令行运行它们。目前我有一个 Python 目录和一个 chaos.py 模块。完整路径为/Users/Ben/Documents/Python/chaos.py

所以我按照herehere 的步骤进行操作。我可以看到 Python 3.4 的站点包在几个位置,但我选择了这个:'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages' 来放置 .pth 文件。

我在此位置创建了一个名为 Ben.pth 的文件,其内容为:/Users/Ben/Documents/Python/

现在根据我(非常有限的)理解,我需要做的就是让 Python 开始看起来正确吗?所以我尝试在终端中运行python3 chaos.py,我得到一个错误:

/Library/Frameworks/Python.framework/Versions/3.4/Resources/Python.app/Contents/MacOS/Python: can't open file 'chaos.py': [Errno 2] No such file or directory

我还将尝试打开 IDLE 单击文件->打开模块...并尝试从那里打开它,我会收到一个“找不到模块”框。

我完全被难住了,我不确定它是否是我在某处犯的语法错误(同样我真的不知道我在用 UNIX 命令做什么)或者我只是在正确的领域。如果有人可以帮助我,我将不胜感激!谢谢!

【问题讨论】:

  • 你需要在终端cd到正确的目录,然后才能运行文件。
  • 添加 .pth 文件实际上会将其添加为可用模块。因此,要从 python 运行它,您必须告诉它您要运行带有 -m 标志的模块。像 python -m chaos 这样的东西会导致它在站点包和扩展中查找一个名为 chaos 的模块

标签: python macos pth


【解决方案1】:

暂时忘记 .pth 的东西,这不是你通常会做的事情。在 unix-ish 环境中,运行脚本的典型方式是更改目录:

 cd /Users/Ben/Documents/Python/

然后运行脚本:

python chaos.py

另一种方法是使用绝对路径运行脚本;无论您当前的工作目录如何,您都可以这样做:

python /Users/Ben/Documents/Python/chaos.py

最后,如果您编写了一个实用程序脚本,您想在任何地方运行而无需一直输入绝对路径,那么您可以做一些更有趣的事情...

添加一个“shebang”行作为脚本的第一行。它会是这样的:

#!/usr/bin/env python

进入你的脚本所在的目录:

cd /Users/Ben/Documents/Python/

使脚本可执行:

chmod +x chaos.py

将脚本的链接放在路径上的目录中.../usr/local/bin/ 可能是一个不错的选择:

ln -s /Users/Ben/Documents/Python/chaos.py /usr/local/bin/chaos.py

现在您可以在系统上的任何位置键入chaos.py,它就会运行。

【讨论】:

  • 太棒了,非常有帮助。我现在可以从终端运行程序。但是,每当我尝试将其导入 IDLE shell 时,它都会失败。所以我打开 IDLE(或者如果我在终端中输入 python3 来启动 python shell 也会发生同样的错误),然后我输入 import chaos.py 并收到此错误。回溯(最后一次调用):文件“”,第 1 行,在 中导入混乱 ImportError:没有名为“混乱”的模块我只是没有将程序正确设置为模块吗?我完全误解了导入命令吗?
  • 我不是 IDLE 用户,因此我无法详细说明其细节,但如果您的目标是将文件作为模块导入,我们将采用不同的路径(不是双关语)。首先,重要的是要知道导入不涉及文件扩展名......圆点表示package.module。因此,在您的示例中,您试图从包chaos 导入模块py。你想要的是将你的模块放在你的 PYTHONPATH 上......检查docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH......然后你就可以import chaos
  • 然后,如果您这样做一段时间,您会发现到处复制文件或使用 PYTHONPATH 搞砸会很烦人。那时你会想学习如何打包你的 python 代码,以便它可以安装。这是一个很好的教程:scotttorborg.com/python-packaging
  • 再次感谢您的帮助,在 IDLE 中我输入了 import sys 然后 sys.path.append("/Users/Ben/Documents/Python") 现在 Python 正在该目录中搜索模块。我可以通过输入import chaos 来导入chaos.py 程序。正是我想要的!
猜你喜欢
  • 2010-10-16
  • 1970-01-01
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多