我如何仅导入PyPI程序包,而不从中导入任何内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何仅导入PyPI程序包,而不从中导入任何内容?相关的知识,希望对你有一定的参考价值。

我创建了我的第一个PyPI软件包,但是有问题。我希望用户能够导入名为Chess-graph的程序包,然后立即运行它。

例如,用户可以输入import chess_graph。然后,他们可以使用chart.graph(<link-to-file>)直接运行该程序。

但是,当我尝试以这种方式运行程序包时,我无法这样做。相反,我必须输入import chess_graph(在运行pip install chess-graph之后),然后再输入from chess_graph import chart.

我有什么办法可以将图表与chess_graph一起导入?这是我的目录的样子:

/pypi_chess

    /chess_graph

        __init__.py

        chart.py

        game_parser.py

    LICENSE

    README.md

    setup.py

我的猜测是,我可以将图表导入到__init__.py文件中,但这不起作用。

我的__init__.py文件看起来像这样:

from chess_graph import chart

print('test print')

[当我运行import chess_graph时它会打印test print,但是如果我尝试直接输入chart.graph(file),它会显示name: chart is not defined.

但是我知道它正在导入它,因为海图是一个大文件,并且需要几秒钟的时间才能导入chess_graph。

如何仅通过导入包来运行图表文件?

答案

使用这样的__init__.py,您可以做:

import chess_graph

...

chess_graph.chart.graph(file)

以上是关于我如何仅导入PyPI程序包,而不从中导入任何内容?的主要内容,如果未能解决你的问题,请参考以下文章

能够导入模块但不能从中导入东西[关闭]

如何在绝对导入中设置没有点符号的 Pypi 包 - python3

将 JSON 文件包含到构建/输出目录而不导入

如何从另一个包中只导入一个函数,而不加载整个命名空间

在 Visual Studio 16.6 中将仅内容包导入 DotNet Core 3.1 项目

打印模块的版本而不导入整个包