在Mac上导入Python文件

0 投票
2 回答
12743 浏览
提问于 2025-04-17 17:07

我有一个Python课程的练习需要完成。我把我的方法和定义都保存在一个文件里,现在只需要弄明白怎么运行它。我希望你能告诉我怎么导入文件(我知道语法是“import 文件名”)。每次我这样做的时候都会出错。我该怎么把导入的文件路径改成我桌面上的文件呢?我在用Mac,运行的是IDLE 2.7.3。

2 个回答

0

在Mac OS X上,有两种基本的方法来启动IDLE。第一种是从Finder的应用程序文件夹中双击IDLE图标(我称之为 IDLE.app)。第二种是通过终端命令行启动IDLE,像这样:

 idle2.7

我称这个为 bin/idle,因为它指的是你系统中某个 bin 目录下的文件。

当你启动 bin/idle 时,IDLE会继承当前终端的工作目录,并把这个目录放在Python查找导入模块的目录列表的最前面。你可以在IDLE的命令行窗口查看这个目录列表:

 import sys
 sys.path

但是,当你启动 IDLE.app 时,它并没有和任何终端关联,所以你无法告诉IDLE使用哪个工作目录。在这种情况下,IDLE.app 会使用你的 Documents 文件夹作为它的工作目录:用终端的表示法就是 ~/Documents,也可以写成 /Users/你的登录名/Documents

你可以在Python程序中手动修改 sys.path 来添加其他目录以便导入模块:

 import sys
 sys.path.insert(0, '/path/to/directory')

另一种修改 sys.path 的方法是使用 PYTHONPATH 环境变量。但是,再说一次,当使用 IDLE.app 时,没有(简单的)方法可以将环境变量传递给它,这和 bin/idle 不同。

所以如果你想使用 IDLE.app,最简单的方法就是把你想导入的所有文件和包目录放到你的 Documents 目录里。否则,使用终端会话,设置你想要的工作目录和/或 PYTHONPATH 变量,然后启动 bin/idle。像这样:

cd ~/MyProject
export PYTHONPATH=~/"AnotherPackageDirectory"
idle2.7

还有一种方法是将你的模块安装在Python默认查找的位置,并使用Distutils、easy_installpip。不过这部分可以等你完成项目后再学习。

1

如果这些文件和你正在使用的文件在同一个文件夹里,你可以直接使用

import <filename> #(without the <>)

但是,如果你要引用的是在另一个文件夹里的文件,就要用到 imp

import imp

module = imp.load_source('module.name', '/path/to/file.py')
module.SomeClass()

撰写回答