python - 在同一个包python中导入文件
问题描述
我正在使用 Python 3.6
我的文件结构:
ACS-backend
ACS
-__init__.py
-main.py
-VCDN.py
bin
data
docs
venv
weights
-.gitignore
-requirements.txt
-setup.py
我正在尝试在我的 main.py 中导入 VCDNN,from ACS.VCDNN import VCDNN
我已经尝试过在我添加 ACS 文件夹.VCDNN from VCDNN
之前VCDNN from VCDNN
使用的最后一个工作。
要从 cmd 运行它,我只需venv/Scripts/activate.bat
激活我当前的 VENV,然后只激活 python main.py,我得到的错误是:
Traceback (most recent call last):
File "main.py", line 5, in <module>
from ACS.VCDNN import VCDNN
ModuleNotFoundError: No module named 'ACS'
虽然从 PyCharm 运行时,我看到它执行:
C:\work\COMP1682\ACS-backend\venv\Scripts\python.exe C:/work/COMP1682/ACS-backend/ACS/main.py
效果很好,但是当我从 CMD 运行完全相同的命令时,它仍然给我同样的错误。
解决方案
尝试from .VCDN import VCDNN
,那将是正确的相对导入。
推荐阅读
- php - 使用数组键和值将多维数组保存为“平面”
- spring - 尝试使用 PowerMock 和 EasyMock 模拟静态方法时出现 ClassNotFoundException
- asp.net - Asp.net 页面抛出站点无法访问
- woocommerce - 在没有点击事件的情况下运行 Ajax 脚本
- javascript - 有没有办法在 typecipt 程序中获取类的详细信息,以便我可以将这些详细信息传递给记录器(winston)?
- asp.net - AspNetCore 3.0 - HTTP 错误 500.0 - ANCM 进程内处理程序加载失败
- api - 为什么不在 PayPal API 中使用“platform_fees”?
- mysql - 在 SQL 表中存储记录数
- java - 如何通过省略中介类来简化改造
- ios - 音频未播放 Xcode 10.1 Swift 4