【问题标题】:Easiest way to import the modules from parent folder?从父文件夹导入模块的最简单方法?
【发布时间】:2020-10-12 17:20:45
【问题描述】:

我的文件夹设置是这样的。

Desktop/project1/

在 project1 中,我有 main.py,其中存储了我的所有函数,以及每个实例的文件夹。所以它看起来像这样。

Desktop/project1/main.py
Desktop/project1/user1/
Desktop/project1/user2/

在用户文件夹中,我有:

Desktop/project1/user1/user1.py
Desktop/project1/user2/user2.py

我需要能够在该用户文件夹内的每个 user.py 文件夹中导入和使用 main.py 中的函数。任何想法如何轻松做到这一点?

我正在使用 Pycharm,当我开始输入它时,它会自动为我填充它,就像它可以看到 main.py 以及其中的函数一样,但是当我运行程序时,我得到了一个错误。

from main import function1

ModuleNotFoundError: No module named 'main'

谢谢

【问题讨论】:

  • 在这种情况下,将工作目录更改为project1 就足够了。
  • @PeterWood 所以当我关闭我的 pycharm 项目并从 user1 文件夹中打开项目时,只有 user1.py 文件,现在导入语句带有红色下划线,它不会自动填充它,它仍然不工作。
  • 但我不是这么说的。
  • Nvm,我想我明白了。当我从 pycharm 进入编辑配置并将工作目录更改为该目录时,它起作用了。虽然,我计划从命令行运行这个 user1.py 文件。这仍然有效吗,我只需要在运行之前 cd 进入该文件夹吗?谢谢@PeterWood。
  • 是的。但你也可以使用相对导入。

标签: python python-3.x import


【解决方案1】:

您可以将目录的路径添加到您的sys.path 使用

import sys
sys.path.append(r'path\to\dir')

之后就可以正常导入文件了。 您可以使用pathlib 检索父目录的路径。

【讨论】:

    【解决方案2】:

    尝试在你的模块目录中创建一个空文件__init__.py__init__ 可以检测到您的自定义 python 模块

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-16
      • 2012-12-13
      相关资源
      最近更新 更多