在python中导入子包时出现问题:如何编写__init__.py文件

杜乔·皮奥瓦尼(Duccio Piovani)

我不熟悉构建软件包,因此请耐心等待。我在导入最新的python项目的子包时遇到问题。

我的目录结构如下:

├── package
│   ├── __init__.py
│   ├── subpackage_a
│   │   ├── __init__.py
│   │   └── functions_a.py
│   └── subpackage_b
│       ├── __init__.py
│       └── functions_b.py
└── setup.py

文件如下

setup.py:

from setuptools import setup
setup(name='test_package',
      version='0.3',
      description='',
      author='me',
      packages=['package']
      )

package / __ init__.py:为空。

subpackage_a / __ init__.pyfrom .functions_a import *

subpackage_b / __ init__.pyfrom .functions_b import *

functions_a.py

包含

def hello_world_a():

    print('hello its a')

functions_b.py包含

def hello_world_b():

    print('hello its b')

现在,我打开一个virtualenv进入setup.py的目录,然后进入pip install .我期望访问子包a和b中包含的功能。但是,当我尝试导入功能时,出现模块未找到错误。

from package.subpackage_a import hello_world_a 

ModuleNotFoundError: No module named 'package.subpackage_a'

对于subpackage_b同样适用。但是,如果我导入包,这是公认的。我有一种感觉,这种方法曾经有用,因为我有一些用这种方式写的旧软件包,这些软件包不再起作用。

也许我必须更改init .py文件?我究竟做错了什么 ?

客人

setuptools.setup不知道subpackage_asubpackage_b存在。您只指定了顶层package因此,它不会在安装中包括这些子软件包。相反,您还应该指定它们:

setup(
    ...,
    packages=['package', 'subpackage_a', 'subpackage_b']
)

该过程可以通过find_packages()以下方式自动化

from setuptools import find_packages

setup(
    ...,
    packages=find_packages()
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R中导入json文件时出现问题

来自分类Dev

如何使用 __init__ 在 python 中导入顶级文件

来自分类Dev

Python:如何从__init__.py文件导入?

来自分类Dev

组织__init__.py文件时出现循环导入错误

来自分类Dev

组织__init__.py文件时出现循环导入错误

来自分类Dev

导入.py文件错误

来自分类Dev

如何在Jupyter Notebook中导入python .py文件

来自分类Dev

加密python(.py)文件

来自分类Dev

在python3.6上导入yarl或discord.py时出现问题

来自分类Dev

Python:读写文件时出现问题

来自分类Dev

在Spark中导入Parquet文件时出现内存问题

来自分类Dev

导入证书和配置文件时出现问题

来自分类Dev

当我想导入CSV文件时出现问题

来自分类Dev

Python 导入错误:从包中导入函数时出现错误。执行 mymath.multiply() 时在 test.py 上导入错误

来自分类Dev

在 Python 3 中导入 CSV 文件时出现 unicodeescape 错误

来自分类Dev

独立py.test(忽略__init__.py文件)

来自分类Dev

如何在同一包中导入__init__.py内部定义的类?

来自分类Dev

当许多.py文件导入重复的软件包时,如何保持规范的软件工程?

来自分类Dev

如何锁定python(.py)文件进行编辑?

来自分类Dev

如何锁定python(.py)文件进行编辑?

来自分类Dev

Pyspark导入.py文件不起作用

来自分类Dev

使我的.py文件可从任何目录导入

来自分类Dev

如何从包init.py导入

来自分类Dev

文件位于不同文件夹时导入模块时出现问题

来自分类Dev

Web.py 使用 JS 文件的问题

来自分类Dev

使用setup.py安装软件包时出现问题

来自分类Dev

打开.py文件时,Eclipse / LiClipse冻结

来自分类Dev

从其他 Python 文件调用函数时出现问题

来自分类Dev

Python __init__文件无法导入模块

Related 相关文章

热门标签

归档