问题描述
本文出现的原因在于我验证 py可以调用同级目录下包的任意模块 这一既定事实的过程。
整个代码结构如图所示
fine.py 与 ansemb在同一级目录下,所以它可以调用ansemb.config
但在实际操作中却发现,pycharm会标红
然后我运行了一下
发现是可以运行的,但标红是什么道理??? 这就很奇怪了
问题原因
经过百度,发现了原因(链接见文末,感谢)
- python在执行fine.py时,以fine所在目录为工作区
- 而pycharm在我们进行代码编辑,预编译查错时,是以我们的项目顶层目录为工作区的
- 例如我这里的pythonProject就是当前pycharm的工作区
- 可以这样测试一下,在PythonProject目录下创建 ansemb.config.py,看看有无改变
- 此时,发现,标红消失了,不过运行的时候和之前是一样的没有什么变化
- 还是以 python的工作区为准
问题解决
- 首先,这是pycharm的问题,对代码没有任何的影响,换一个ide没准就没有了
- 代码没有问题就不用去解决,标红就标红
- 如果非要解决,setting–Project pythonProject–Project Structures–将content root改为这里的try即可
参考
https://cloud.tencent.com/developer/article/1425221