【问题标题】:How to create subdirectories while saving Python files on Mac?如何在 Mac 上保存 Python 文件时创建子目录?
【发布时间】:2018-09-13 06:19:55
【问题描述】:

我正在使用一本使用基于 Window 的示例的书来学习 Python,他们将这些示例用作示例(cmets 是文件名):

# dir1\__init__.py
print('dir1 init')
x = 1

# dir1\dir2\__init__.py
print('dir1 init')
y = 2

# dir1\dir2\mod.py
print('in mod.py')
z = 3

现在使用 IDLE,它尝试使用以下方法导入文件:

import dir1.dir2.mod

将显示的内容:

dir1 init
dir2 init
in mod.py

当我尝试在我的 Mac 上的 IDLE 上执行此操作时,它会出现一个错误,指出没有名为 dir1 的模块。 练习的重点是打包导入,但如果我不正确地格式化文件或导入不正确,我不会这样做。

【问题讨论】:

    标签: python macos import package


    【解决方案1】:

    我认为这些文件不在 IDLE 运行或查看的目录中。

    尝试查看 IDLE 在您的 Mac 上的位置,完整路径。一旦发现可能尝试将文件放在同一个地方,以便 python 可以看到这些文件。

    作为一个实验,我建议在 VS Code 之类的编辑器中编写脚本。 cd 进入您保存脚本的目录。通过pythonyourfilename.py 运行脚本,然后查看它的内容。就个人而言,我从未使用过 IDLE,但我遇到过 python 无法找到该文件。

    【讨论】:

    • 当我保存这些文件时,是否应该创建一个名为 dir1 和 dir2 的新文件夹?还是我必须自己手动创建它们。 Python 3.6 存在于我的应用程序文件夹中,并且在该 IDLE 中存在。我应该在其中创建另一个文件夹还是将其保存在 3.6 文件夹中?
    • 我认为您必须自己制作目录。尝试文本编辑器路线!同样,我不太确定 IDLE。在那里,您将创建您的目录,将文件放在那里,将它们导入另一个文件(模块),然后调用该文件。
    【解决方案2】:

    我不确定您到底在问什么,但您的文件结构在 Finder 中应该如下所示:

    这是:

    dir1
    |-- __init__.py
    |-- dir2
        |-- __init__.py
        |-- mod.py
    

    并且你需要确保你在IDLE中的工作目录是dir1所在的目录。我认为您无法在 IDLE 中更改它,但您可以这样做以使其正常工作:

    >>> import sys
    >>> sys.path.insert(0,'/path/to/directory/where/dir1/is/stored')
    

    【讨论】:

    • 当我保存这些文件时,是否应该创建一个名为 dir1 和 dir2 的新文件夹?还是我必须自己手动创建它们。 Python 3.6 存在于我的应用程序文件夹中,并且在该 IDLE 中存在。我应该在其中创建另一个文件夹还是将其保存在 3.6 文件夹中?
    • 我会附上一张图片,但很遗憾不能在评论中。
    • 我不会在应用程序文件夹中创建文件夹,我会在您的文档文件夹中创建文件夹dir1 等,然后使用sys 让IDLE 认为dir1 在同一个目录。是的,我认为您需要手动创建文件夹和文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2011-10-13
    • 2014-08-15
    • 1970-01-01
    • 2011-02-26
    • 2013-10-26
    • 1970-01-01
    相关资源
    最近更新 更多