python - 为什么我无法访问 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 中,但我仍然得到同样的错误。我还缺少什么?:)
解决方案
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)
推荐阅读
- c# - 反序列化 .netcore 应用程序中的 soap xml 响应
- android - RecyclerView 有几个节点火力基地的孩子
- php - Perl $ENV 在 PHP 中等效以获取变量
- sql - 有线性插值sql查询吗?
- powershell - 在 PowerShell 和 Server 2012 R2 中使用 Get-TlsCipherSuite
- python - Pytorch - 在 eval() 和 train() 模式之间来回切换
- r - 在 R 中控制 ggplotly 中的点顺序
- spring - 我试图制作一个spring jdbc项目,但是当我尝试运行它时出现了这个异常
- canvas - 在 Konvajs 中更改宽度和大小而不是 scaleX 和 scaleY
- python - 了解 Blender 中的矩阵运算