【问题标题】:How to Import a class from a different folder in python?如何从python中的不同文件夹导入类?
【发布时间】:2016-02-19 18:48:58
【问题描述】:
     common/src/validation/file1.py

在 common/src/validation 文件夹中定义了“_init_”。

     common/test/validation/file2.py
     common/test/validation/case/file3.py

在file2.py和file3.py中,我想从file1.py中导入类。

我在 file2.py 和 file3.py 中给出以下行:

      from file1 import class1  

我目前收到错误:

      #ImportError: No module named file1

sys.path.append 应该是什么?

【问题讨论】:

  • __init____init__.py?
  • 具体代码和错误是什么?
  • 是的,它是 init.py.
  • 在文件 2 和文件 3 中,我试图给出 - 从文件 1 导入类 1。错误是 # ImportError: No module named file1.不知道这到底是怎么做的……!

标签: python import module directory


【解决方案1】:

您应该在脚本开头将模块添加到您的 python PATH 中。所以在你的 file2.py 和 file3.py 的开头,你应该有以下内容:

sys.path.append('/src/validation/')
from file1 import class1

别忘了在 /src/validation/ 目录中创建 __init__.py。

【讨论】:

  • 感谢您的帮助。我只是更改了文件夹结构。你能告诉我 sys.path.append 应该是什么样子吗?
  • @abcde sys.path 表示 python 路径。 IE。 python模块的路径。 Python 会查看此变量以查找它找到的任何命令(除了系统环境变量)。因此,如果你想从一个不在你的 python 路径中的模块导入一个类,它应该使用 sys.path.append 附加到你的 sys.path 中。在此之前,当然需要导入 sys。
  • @shahram 谢谢你的解释。对于问题中的上述目录结构,您能否告诉我 sys.path.append 的路径应该是什么?我是这项工作的新手,无法提供正确的路径...谢谢
  • @abcde: 如果 'common' 在你的根目录中,你应该在 file2.py 和 file3.py 的开头有这些行:import sys sys.path.append('/common/src/validation/') from file1 import class1
猜你喜欢
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-29
  • 2020-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多