最近用pyinstaller封装程序,本来单个程序test.py 执行时,进程只有一个,但是pyinstaller之后,程序一直执行。
后来发现是程序import的文件有隐藏着的多进程。google了一下,发现解决方法是:
from multiprocessing import freeze_support
freeze_support()
之前试了好多次,将上面代码放再main中都不能解决问题,后来发现只有放在开头,包括import 之前才有作用。
我的import 库是:
import os
from pathlib import Path
import tkinter as tk
from tkinter import ttk
from tkinter import filedialog
from PIL import Image, ImageTk
import numpy as np
import random,cv2 #ok
import argparse #ok
from keras.preprocessing.image import img_to_array #引起报错
from keras.models import load_model #3
from sklearn.preprocessing import LabelEncoder #引起报错,RecursionError: maximum recursion depth exceeded
import warnings #5
from tqdm import tqdm #引起报错
import matplotlib.pyplot as plt #7
from unet_train_sensity import sensitivity,specificity,presicion #报错
from keras import backend as K #3报错
import tensorflow as tf #4报错
from keras.backend.tensorflow_backend import set_session #3
import time,sys