【问题标题】:Creating a Python package -- how to have the name of the package be imported directly?创建Python包——如何直接导入包名?
【发布时间】:2022-01-07 22:27:22
【问题描述】:

我正在尝试创建一个名为“foo”的 Python 包,其中包含一堆函数,最终将与 PyPI 一起发布。我希望它像这样工作:

import foo
foo.func("parameter")

但我不知道如何只导入 foo 并使用它的功能。我在一个名为 foo 的文件夹中有 foo.py(它只有一堆函数)和 __init__.py。其他东西(即 LICENSE、README.md、setup.py)是上一级的。为了使用 foo.py 中的函数,现在我需要输入:

from foo import foo
foo.func("parameter")

自从我尝试了

导入 foo

然后使用一个函数,我得到了

AttributeError: module 'foo' has no attribute 'func'

这个错误是有道理的,但我不知道如何解决它。第二种方式(from foo import foo?)似乎不正确。我觉得自己很笨,但我整个下午都在试图把它弄到第一条路上。我一直试图弄乱 __init__.py 无济于事。

【问题讨论】:

    标签: python pip pypi


    【解决方案1】:

    尝试在您的 __init__.py 中添加类似的内容

    import foo
    
    function_name = foo.function_name
    

    然后,你可以从其他包中做

    from foo import function_name
    

    【讨论】:

    • 或只是from .foo import *
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2023-01-23
    • 2021-11-02
    • 2013-02-21
    • 2018-12-01
    • 2021-11-08
    • 1970-01-01
    相关资源
    最近更新 更多