为什么在为 tkinter GUI 制作 Exe 文件时出现 ModuleNotFoundError?

Why I am getting ModuleNotFoundError when I make an Exe file for tkinter GUI?

我有一个简单的代码来使用实验的 LHS 设计,它运行良好。

from tkinter import *
from pyDOE import *

root = Tk()
root.geometry("400x400")

n_points = IntVar()
n_features = IntVar()

label1 = Label(root, text="Initial No. sample points:")
label1.grid(row=0, column=0)

entry1 = Entry(root, textvariable=n_points)
entry1.grid(row=0, column=1)

label2 = Label(root, text="No. parameters:")
label2.grid(row=1, column=0)

entry2 = Entry(root, textvariable=n_features)
entry2.grid(row=1, column=1)

label3 = Label(root)
label3.grid(row=3, column=0, columnspan=2)

def LHS():
    lhs_design = lhs(n_features.get(), samples=n_points.get(), criterion="corr")
    label3.config(text="your design is:" + str(lhs_design))

mybutton = Button(root, text="Calculate!", command=LHS)
mybutton.grid(row=2, column=0, columnspan=2)

root.mainloop()

我想使用 pyinstaller 创建一个 Exe 文件。我遵循以下步骤:

  1. mycode.py 放入 folder
  2. 打开cmd,然后我将目录更改为folder
  3. 运行 pyinstaller --onefile -w mycode.py
  4. 然后在创建的dist文件夹中,会有一个Exe文件

然而,当我 运行 exe 文件时,我得到这个错误:

Traceback (most recent call last):
  File "mycode.py", line 2, in <module>
ModuleNotFoundError: No module named 'pyDOE'

我在 cmd 中有 运行 的代码中的某个地方犯了错误吗?还是我需要在 exe 文件夹中的某处添加 pyDOE 包?

我在另一个post中也遇到了同样的问题:How to make an executable file when we are running an R script in python and Tkinter?

我试图在 python 中 运行 一个 r 代码,所以我添加了这个库:来自 rpy2.robjects.packages import importr,我得到了类似的错误。我想,错误可能是因为从 r 读取,但似乎我在其他地方犯了错误。

我找到了 post 的答案。

mycode.py 文件的放置位置和使用 pyinstaller.

似乎有所不同

该文件需要位于 python 的安装位置,在 scripts folder 中。然后,我们可以使用 pyinstaller mycode.py.