我尝试使用pyinstaller部署模型,当我运行它时,我收到以下错误。
ModuleNotFoundError:没有命名的模块 ' tensorflow.python._pywrap_tensorflow_internal'
Tensorflow 1.7.0
cudnn64_7
CUDA 9.0
Python 3.6
答案 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.pydPathToAnaconda3 / 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