down了一个代码,运行的时候总是出现如下问题,关键是我以前的项目中,也这样调用过,没什么问题呀,真的是百思不得其解.也在网络上查了很多跨文件调用的方法,什么加路径呀,都试过,但是都没什么用.
问题如下:
明明是有该文件,但是系统就是找不到.我也是很不知所措呀.
后来我就通过写小的文件包,然后一步一步做测试,发现了是experiments文件夹下面没有__init__.py文件,当我添加上这个文件后,真的就不报错了.效果截图如下:
然后,__init__.py文件果断勾起了我的好奇心,到底它有什么天大的本事. 查了一下,果然是有大用处:
其实仔细观察,可以发现,在python的模块目录中都会看到__init__.py文件,
其作用是表示该目录是一个python的模块包(module package),如果在目录中存在该文件,那么该目录就会被识别成模块包.
如果不加这个文件,那么当我们在执行import的时候,当前目录是不会变化的,就算是执行子目录的文件夹,还是需要完整的包名.
具体的__init__.py函数的解释,请参见博客:https://www.cnblogs.com/tp1226/p/8453854.html
2、当在子文件夹中调用别的子文件中的文件时,也要从工程的最顶端开始写,如。
from mypackage.subpackage_1 import test11
3、另外还有些博客说pycharm不会将当前文件目录自动加入自己的sourse_path。
右键make_directory as-->sources path将当前工作的文件夹加入source_path就可以了。部分网友表示有效