首页 > 解决方案 > 使用多进程和 pandas 时使用 PyInstaller 创建 .exe 时出现 FileNotFoundError

问题描述

所以我正在使用多处理并为了让事情更方便,我让我的 .py 脚本创建了 2 个 excel 文件,这些文件存储在一个名为 data 的文件夹中。

问题是,当我使用 pyinstaller 创建可执行文件(.exe,我使用 Windows)时,它会抛出FileNotFoundError. 我之前已经讨论过这个问题,但没有一种方法对我有用。

我的 python 脚本由 1 个主脚本组成,test2.py它调用bug_installer.py模块来创建一些随机的 excel。该bug_installer.py模块首先创建一个文件夹以防万一,然后继续创建 Excel。

这是代码:

bug_installer.py

import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))

import pandas as pd
import random as r
from time import sleep
from shutil import copyfile

def main():
    while True:
        try:
            os.mkdir("data")

        except FileExistsError:
            pass
        
        n = 10
        n_dict = {}
        ran = []
        for _ in range(n):
            ran.append(r.choice(list(range(n))))
            
        n_dict["N number"] = ran
        df = pd.DataFrame(n_dict)
        
        og = "df_original.xlsx" 
        ph = "df_placeholder.xlsx"
        
        og_path = os.getcwd()+"\\data\\"+og
        ph_path = os.getcwd()+"\\data\\"+ph
        
        df.to_excel(og_path, index = False)
        copyfile(og_path, ph_path)


        sleep(3)

test2.py模块:

import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))

import multiprocessing as mp
import bug_installer as bug
from time import sleep
import pandas as pd

def f(name):
    print('hello', name)

if __name__ == '__main__':
    p = mp.Process(target=bug.main, args=())
    p.start()
    sleep(3)
    while True:
        df = pd.read_excel("data\\df_placeholder.xlsx")
        print(df)
        sleep(1)

这是错误消息: 在此处输入图像描述 提前致谢!

标签: pythonexcelmultiprocessingpyinstaller

解决方案


推荐阅读