首页 > 解决方案 > 为什么我无法访问 Python 模块?

问题描述

我有以下结构:

project
├── sum_package
│   └── sum_module.py
├── testing.py

我尝试通过sum_module.py两种testing.py不同的方式访问:

第一的:

from sum_package import sum_module
sum_module.great_summation(1,2)

第二:

import sum_package
sum_package.sum_module.great_summation(1,2)

第一个有效,第二个无效:

AttributeError: module 'sum_package' has no attribute 'sum_module'

有人可以解释为什么吗?

编辑:尝试添加__init__.py到包文件夹/项目文件夹中的一个/两个,没有帮助。

编辑 2:所以问题似乎是 $PYTHONPATH。我尝试将我的 src(项目)目录添加为 PYTHONPATH,如下所示:

export PYTHONPATH = "$PWD"

虽然在 src 中,但我仍然得到同样的错误。我还缺少什么?:)

标签: pythonimport

解决方案


project
├── __init__.py
|
├── sum_package
    ├── __init__.py
    |
│   └── sum_module.py
├── testing.py

需要这些__init__.py文件才能使 python 将包含该文件的目录视为packages. 使您的文件夹结构像这样。在最简单的情况下,__init__.py可以只是一个空文件。然后尝试

测试.py

from sum_package import sum_module

sum_module.great_summation(1,2)

推荐阅读