一、无法打开包括文件:“fstream.h”
vs2019编译时报错提示:
errorC1083: 无法打开包括文件:“fstream.h”: No such file or directory
解决
把
#include <fstream.h>
改成
#include <fstream>
using namespace std;
原因
从 Visual C++ .NET 2003 开始,移除了旧的 iostream 库。
标准 C++ 库和以前的运行时库之间的主要差异在于 iostream 库。
必须移除任何包含在代码中的旧 iostream 头文件(fstream.h、iomanip.h、ios.h
、iostream.h、istream.h、ostream.h、streamb.h 和 strstrea.h),并添加一个
或多个新的标准 C++ iostream 头文件(所有头文件都没有 .h 扩展名)。
在新的标准 C++ iostream 库中:
- open 函数不采用第三个参数(保护参数);
- 无法从文件句柄创建流;
- 除了几个例外,新的标准 C++ 库中的所有名称都在 std 命名空间中;
- 单独用 ios::out 标志无法打开 ofstream 对象。ios::out 标志必须在逻辑 OR 中和另一个 ios 枚举数组合;比如,和 ios::in 或 ios::app 组合;
- …
参考
vs++2010 编译说找不到 fstream.h 解决方法
二、ImportError: cannot import name ‘np_utils‘ from ‘keras.utils’
解决
把
from keras.utils import np_utils
改为
from keras.utils import to_categorical
原因
查找官网 API 文档:https://keras.io/2.15/api/utils/python_utils/
to_categorical
所在包路径为:
tf_keras.utils.to_categorical(y, num_classes=None, dtype="float32")
参考
解决Keras独热编码转换报错:ImportError: cannot import name ‘np_utils‘ from ‘keras.utils‘
三、ModuleNotFoundError: No module named ‘keras.layers.merge’
解决
把
from keras.layers.merge import concatenate
改为
from tensorflow.keras.layers import concatenate
原因
from keras.layers.merge import concatenate是在旧版环境下运行的,在新版环境下只须把代码改为: from tensorflow.keras.layers import concatenate
参考
运行TensorFlow时,错误 ModuleNotFoundError: No module named ‘keras.layers.merge‘ 的解决办法
四、Cannot find reference ‘XXX’ in ‘init.py’
解决
File→Settings→Editor→Inspections→在右侧框中选择python→Unresolved references
将Unresolved references后的“ √ ”去掉
原因
这个错误不会对程序运行产生影响,但是你将无法通过ctrl+左键跳转到被引用方法的源文件中,也无法查看该方法的文档。这主要是因为包撰写时导入不规范的原因,也可以认为这是Pycharm的一个Bug。