【问题标题】:Ignoring the base folder name when importing a class导入类时忽略基本文件夹名称
【发布时间】:2021-11-25 01:39:08
【问题描述】:

我有一个结构如下的python库:

my_project <-- Base folder
 |
 +-- my_project <-- Source folder
 |    
 +----- my_project.py <-- contains class MyProject
 |   
 +----- __init__.py
 |
 +-- tests

目前我必须将项目引用为:

from my_project.my_project import MyProject

我的 setup.cfg:

[options]
packages = find:

[options.packages.find]
include = my_project

我不知道如何更改imports,使其只需要对my_project 的单一引用。到处寻找并尝试了多种组合,包括将my_project更改为src

from my_project import MyProject

【问题讨论】:

    标签: python python-3.x import package


    【解决方案1】:

    我认为您将基本文件夹与源文件夹混淆了。 目前,您使用了两个对 my_project 的引用,但没有一个引用指向基本文件夹。

    from my_project.my_project import MyProject
            ^           ^
    the source folder   |
                        |
                   the my_project.py file
    

    您没有在任何地方引用基本文件夹。这你应该如何在你的代码中首先引用模块和类,这没有错。

    【讨论】:

    • 好的。我明白你在说什么并且有道理。谢谢。
    • 我的困惑,正如我解释的那样,我包括基本文件夹。是不是我需要将 my_project.py 从 my_project 目录移出一级。然后我可以在 setup.cfg 添加 py_modules = my_project.我还将 my_project 文件夹更改为 src。
    猜你喜欢
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多