无法从当前工作目录外部导入函数

Unable to import a function from outside the current working directory

我目前在导入一些函数时遇到困难,这些函数位于 python 文件中,该文件位于主 flask 应用程序脚本工作目录的父目录中。结构如下

project_folder
- public
--app.py
-scripts.py

这是 app.py 的副本代码:

def some_function():
    from scripts import func_one, func_two
    func_one()
    func_two()
    print('done')


if __name__ == "__main__":
    some_function()

scripts.py 包含这样的函数:

def func_one():
    print('function one successfully imported')


def func_two():
    print('function two successfully imported')

在我的 app.py 中导入这些函数的 pythonic 方法是什么?

在它前面加一个点,以便它搜索当前目录 (project_folder) 而不是您的 python 路径:

from .scripts import func_one, func_two

相关导入的详细信息在PEP 328

中描述

编辑:我假设您正在使用一个包。考虑添加一个 __init__.py 文件。

无论如何,您可以通过更改系统路径导入 python 中的任何内容:

import sys
sys.path.append("/path/to/directory")
from x import y

1.

import importlib.util

def loadbasic():
    spec = importlib.util.spec_from_file_location("basic", os.path.join(os.path.split(__file__)[0], 'basic.py'))
    basic = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(basic)
    return basic #returns a module
  1. 或者在目录中创建一个空文件__init__.py

  1. 不要用追加污染你的路径。