在Mac上的shell中导入模块



我最近开始阅读Mark Lutz的《学习Python》一书的第4版。我下载了最新版本的Python(v3.7(和IDLE,并且在Mac上运行。我在尝试导入模块时遇到问题。在第54页,它说要创建一个脚本threenames.py,代码如下:

a = 'dead' 
b = 'parrot' 
c = 'sketch'

我已将其保存在桌面中。接下来我打开一个外壳:

import threenames

输出应为dead parrot sketch然而,我收到了错误消息:

Traceback(最后一次调用(:

文件"<pyshell#0>",第1行,在<模块>

导入三个名称

ModuleNotFoundError:没有名为"threenames"的模块

我的sys.path是","/Users/xxxx/Documents","/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip","/Library/Frameworks/Pyston.framework/Versions/3.7.lib/ppython3.7/lib/dynload">

由于Desktop文件夹位于/Users/xxx/Desktop,并且未在sys.path中列出,因此在启动python之前,您可以将文件移动到/Users/xxx/Documents(主目录中的Documents文件夹(或在shell中执行cd ~/Desktop,因为sys.path包含指代当前工作目录的''

然而,仅仅导入该模块并不能使这些变量在shell中可访问,您必须显式导入它们:

from threenames import a, b, c

文件必须在当前工作目录中。那么导入它是没有问题的。有两种方法可以实现这一点。

  1. 只需从存储.py文件的同一文件夹打开您的python shell。工作目录始终设置为启动python shell的位置。

  2. 只需更改代码中的工作目录。只需致电:

    导入操作系统os.chdir("/directory/with/your/pyfile/"(

最新更新