Windows 10 pyinstaller tensorflow缺少模块

时间:2018-04-09 12:17:00

标签: tensorflow pyinstaller

我尝试使用pyinstaller部署模型,当我运行它时,我收到以下错误。

  

ModuleNotFoundError:没有命名的模块   ' tensorflow.python._pywrap_tensorflow_internal'

Tensorflow 1.7.0

cudnn64_7

CUDA 9.0

Python 3.6

2 个答案:

答案 0 :(得分:1)

您只需将dist文件夹中包含的文件 guard let toTime:Date = timeFormat.date(from:endTime) else { return nil } var dateByAddingThirtyMinute : Date! let timeinterval : TimeInterval = toTime.timeIntervalSince(fromTime) let numberOfIntervals : Double = timeinterval / 3600; var timeArrayAM = [String]() var timeArrayPM = [String]() for _ in stride(from: 0, to: Int(numberOfIntervals * 2), by: 1) { dateByAddingThirtyMinute = fromTime.addingTimeInterval(1800) fromTime = dateByAddingThirtyMinute if let dateString = dateByAddingThirtyMinute.format(with: "hh:mm a") as? String { // print("Time after 30 min = \(dateString)") if temp == 0 { let time = dateString guard let getStopTime = timeFormat.date(from: time) else { return nil } var stopTime = getStopTime var date = Date() date = date.addingTimeInterval(TimeInterval(advanceTimeInterval*60)) let calendar = Calendar.current let year = calendar.component(.year, from: date) let month = calendar.component(.month, from: date) let day = calendar.component(.day, from: date) let hour = calendar.component(.hour, from: stopTime) let minute = calendar.component(.minute, from: stopTime) stopTime = calendar.date(bySetting: .year, value: year, of: stopTime)! stopTime = calendar.date(bySetting: .month, value: month, of: stopTime)! stopTime = calendar.date(bySetting: .day, value: day, of: stopTime)! stopTime = calendar.date(bySetting: .hour, value: hour, of: stopTime)! stopTime = calendar.date(bySetting: .minute, value: minute, of: stopTime)! let timeDifference = calendar.dateComponents([.hour, .minute], from: stopTime, to: date) // print_debug("************************************") // print(timeDifference.hour, timeDifference.minute) if timeDifference.hour! < 0 || timeDifference.minute! < 0 || (timeDifference.hour! == 0 && timeDifference.minute! == 0 ) { showFirstTime = dateString temp = 1 } // print_debug("************************************") } 重命名为_pywrap_tensorflow_internal.pyd即可解决此问题。 我仍然需要弄清楚如何告诉pyinstaller&#34;正确&#34;模块名称。

答案 1 :(得分:0)

(仅适用于Python 3.5的解决方法)

以Jascha解决方案为基础,一种解决方法是从

手动获取文件 __ python._pywrap_tensorflow_internal.pyd

PathToAnaconda3 / env // Lib / site-packages / tensorflow / python / __ python._pywrap_tensorflow_internal.pyd

并将其重命名为 tensorflow.python .__ python._pywrap_tensorflow_internal.pyd

然后可以通过以下方式将重命名的文件移动到exe文件中:

pyinstaller -F <name of python file> --add-data "pathToFile/tensorflow.python.__python._pywrap_tensorflow_internal.pyd";.

--add-data标志采用两个以半冒号分隔的参数

--add-data source_path;destination_path_inside_exe