【问题标题】:import modules in shell on Mac在 Mac 上的 shell 中导入模块
【发布时间】:2019-01-03 18:23:17
【问题描述】:

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

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

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

import threenames

输出应该是dead parrot sketch 但是,我收到错误消息:

Traceback(最近一次通话最后一次):

文件“”,第 1 行,在

导入三个名字

ModuleNotFoundError: 没有名为“threenames”的模块

我的sys.pathis ['', '/Users/xxxx/Documents', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python. framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/ 3.7/lib/python3.7/site-packages']

【问题讨论】:

  • 你从哪里打开外壳?如果不是Users/xxxx/Desktop,那么python将无法找到你的模块——系统搜索当前目录,然后sys.paths,就这样。您需要从另一个位置打开您的 python shell,或者将 threenames.py 移动到 Python 能够看到它的位置(例如到 /Users/xxx/Documents

标签: python python-import python-module


【解决方案1】:

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

但是,仅仅导入该模块不会使这些变量在 shell 中可访问,您必须显式导入它们:

from threenames import a, b, c

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 2020-12-04
      • 2019-08-23
      • 2018-04-17
      • 2012-02-07
      • 2020-04-22
      • 1970-01-01
      • 2016-04-05
      • 2015-07-19
      相关资源
      最近更新 更多