【问题标题】:How to import a function from a file which is outside the directory [duplicate]如何从目录外的文件中导入函数[重复]
【发布时间】:2021-05-26 22:25:00
【问题描述】:
├── apps
│   ├── package1
│   ├── directory 1
│   │   ├── demo1.py
│   │   └── demo2.py
└   └── test1.py
└   └── test2.py (def function2)

这里需要访问test2.py中的function2,并在demo2.py中使用

它看起来像下面的 demo.py 文件

from test2 import function2 

并出现以下错误 ImportError:无法从“test2”导入名称“function2”

【问题讨论】:

  • 这能回答你的问题吗? Importing files from different folder.
  • 您从哪里运行代码以及您的 PYTHONPATH 环境变量设置为什么? apps 目录中有__init__.py 文件吗?
  • 也许from apps.test2 import function2 ?
  • @TomDalton 是的,我在应用程序目录中有 init.py 文件
  • @JPG 我也试过了,但没用

标签: python python-3.x django flask import


【解决方案1】:

在遇到此类导入问题的情况下,我做了什么。我使用sys 模块并将包含我需要导入的包的目录(在您的情况下为test2.py)附加到python 在您尝试导入时查找文件时将检查的路径。

类似的东西

import sys
path_to_project = '/path/to/project/apps/'
if path_to_project not in sys.path:
   sys.path.append(path_to_project)

from test2 import function2

【讨论】:

  • 试过 ..test2 并得到一个 ImportError:尝试相对导入而没有已知的父包
  • @Srihari 是的,抱歉,我认为相对导入方法在这里行不通,但第一个方法对我有用。
  • 兄弟,您能解释一下与我的示例相关的第一个问题吗....请使用我的示例关键字并用我的示例重新创建您的第一个答案
猜你喜欢
  • 2019-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-12
  • 2019-11-07
  • 2016-08-09
  • 1970-01-01
  • 2014-06-08
相关资源
最近更新 更多