如何使Python包不需要import package.packag

2024-06-16 09:10:23 发布

您现在位置:Python中文网/ 问答频道 /正文

tl;dr-我的python包需要import package.package,而不是只使用import package。如何让它与后者一起工作


我试图设置我的第一个python包,但在导入过程中遇到了一些问题

在我的计算机上,我的python包文件设置如下所示:

my-package
 - build
 - dist
 - package
 - package.egg-info
 - LICENSE
 - README.md
 - Setup.py

package的内部是:

__init__.py
package.py

__init__.py读取name = 'package'package.py包含包的所有内容

编辑:我尝试过使用各种不同版本的__init__.py,包括在name = 'package'行下面添加import packageimport package.packageimport package.package as package,但都导致了相同的问题

使用Packaging Python Projects教程,我已经能够将我的包上载到TestPyPi,但是当我将包安装到我的计算机上时,没有可用的函数/方法,当我运行“import package”并执行help(package)时,我得到以下结果:

Help on package package:

NAME
    package

PACKAGE CONTENTS
    package

DATA
    name = 'package'

FILE
    url/to/package

当我运行import package.packagehelp(package)时,我可以访问方法/函数,并获取包内容的预期帮助文本

我的问题是,如何在我的计算机上配置包文件,使它一旦上传到TestPyPi,然后下载,import package工作,而不需要运行import package.package


Tags: 文件方法函数namepyimportpackage内容
1条回答
网友
1楼 · 发布于 2024-06-16 09:10:23

当您写入import package时,您可以访问package/__init__.py中的名称作为package.foo

因此,在__init__.py内部,如果您从package.py导入所有必需的函数/变量/etc,这些名称将对只import package的客户机可见

所以,如果你在package/__init__.py中有这个:

from .package import (foo, bar, baz)

然后在其他代码中可以执行以下操作:

from package import foo

你不必担心from package.package import foo

相关问题 更多 >