gpt4 book ai didi

python - 从同一父目录中的不同文件夹导入模块时出错

转载 作者:行者123 更新时间:2023-12-01 09:02:47 26 4
gpt4 key购买 nike

我有以下 python 包结构:

rkstr8/cloud/batch.py
rkstr8/profiling/test.py

我试图将一个名为 BatchJobListStatusPoller 的类从 batch.py​​ 导入到 test.py,但它给出了错误: ModuleNotFoundError: No module named 'rkstr8' 当我在 test.py 中运行此导入语句时:

从 rkstr8.cloud.batch 导入 BatchJobListStatusPoller

rkstr8/文件夹以及 cloud/和 profiling/子文件夹都有一个 __init__.py

我在这里做错了什么?

最佳答案

问题是因为Python仅从运行程序python test.py的目录/子目录导入模块。它还在 sys.path 变量中搜索模块,其中包括标准库模块和从 pip 安装的任何模块。我可以想到两种方法来解决这个问题,一种是更标准的方法,一种是非正统的解决方法。

  1. 第一种方法是直接在 aws-sfn-tutorial 文件夹中创建一个名为 start_test.py 的脚本。它的唯一目的是在启动时调用您的 test.py 脚本并向下传递任何命令行参数。
    这将使您的 test.py 脚本能够正确找到 aws-sfn-tutorial 文件夹内的所有 python 模块。

  2. 第二种方法是修改 test.py 中的 sys.path 变量以添加要导入的文件的路径。

    • 您可以指定相对路径../,将其相对于当前路径向上移动一个文件夹
    • 或者您可以指定文件夹的绝对路径

示例 2:

import sys
sys.path.append('../') # Or use the absolute path here instead

# After adding to sys.path import your module
from cloud.batch import BatchJobListStatusPoller

关于python - 从同一父目录中的不同文件夹导入模块时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52335995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com