【问题标题】:How to import python files within two subdirectories如何在两个子目录中导入python文件
【发布时间】:2015-01-06 05:36:30
【问题描述】:

我的目录结构如下

 - src\module1\ __init__.py 
 - src\module1\foo1.py 
 - src\module2\ __init__.py
 - src\module2\foo2.py

我想在 foo2.py 中从 foo1.py 导入函数。我尝试使用导入

from module1.foo1 import *

但这会引发回溯错误。 请建议如何在foo2.py中导入foo1.py

提前致谢 手动

【问题讨论】:

  • src 必须在 sys.path 中才能允许您想要的导入。是吗?
  • 请将错误信息粘贴到您的问题中(在代码块内)。
  • 大概您看到了ImportError 异常?如果没有完整的回溯,至少可以报告错误消息会有所帮助。

标签: python python-import python-module


【解决方案1】:

试试这个

from module1.foo1 import ClassName

【讨论】:

    【解决方案2】:

    来自https://docs.python.org/2/tutorial/modules.html

    6.1.2。模块搜索路径

    当一个名为 spam 的模块被导入时,解释器首先搜索 对于具有该名称的内置模块。如果没有找到,然后搜索 对于一个名为 spam.py 的文件,在由 变量 sys.path。 sys.path 从这些位置初始化:

    包含输入脚本的目录(或当前目录)。

    PYTHONPATH(目录名称列表,语法与 shell 变量 PATH)。

    依赖于安装的默认值。

    初始化后,Python程序可以修改sys.path。

    所以让我们修改 sys.path

    import sys
    sys.path.append('src\module1\')
    import foo1
    

    打印 sys.path 是值得的,这样您就可以知道为什么它还没有被发现。

    【讨论】:

    • 我不想更改系统路径
    猜你喜欢
    • 1970-01-01
    • 2021-09-23
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多