我最近开始阅读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
文件必须在当前工作目录中。那么导入它是没有问题的。有两种方法可以实现这一点。
-
只需从存储.py文件的同一文件夹打开您的python shell。工作目录始终设置为启动python shell的位置。
-
只需更改代码中的工作目录。只需致电:
导入操作系统os.chdir("/directory/with/your/pyfile/"(