pyinstaller 打包过程中出现pyinstaller no module named “”

今天采用pyinstaller打包文件,打包语句是

pyinstaller --noconfirm --onedir --windowed --add-data "C:/Users/bxx/Desktop/asdf/proccesing/icons;icons/" "C:/Users/bxx/Desktop/asdf/proccesing/main.py"

打包后出现以下报错:
pyinstaller 打包过程中出现pyinstaller no module named “”_第1张图片
这就很让人难受了,打包前直接运行就没有问题,打包后就不行了。
我查看了一下,路径下确实有这个包。
pyinstaller 打包过程中出现pyinstaller no module named “”_第2张图片
在这里插入图片描述
一顿百度之后找到了这个博客

https://blog.csdn.net/python_new/article/details/80396094

好吧,那它找不到,就直接给他用“–hidden-import”加进去吧,就是这样

pyinstaller --noconfirm --onedir --windowed --add-data "C:/Users/bxx/Desktop/asdf/proccesing/icons;icons/"  --hidden-import fabio.HipiCimage "C:/Users/bxx/Desktop/asdf/proccesing/main.py"

但是问题又来了,虽然这个包找到了,打包后发现缺fabio包下的另一个文件。。。在尝试添打包了五次之后,我怀疑这整个包下的所有文件都找不到,头疼。。。

于是我写了如下函数,把这个包里的所有py文件都拼成了–hidden-import字符串

import os
import re

filePath = 'E:\\work\\mamba\\venv\\Lib\\site-packages\\fabio\\'
a=os.listdir(filePath)
b=""
for file in a:
    if re.match('.+\.py$',file):
        file="--hidden-import fabio." + file[:-3]
        b= b+" "+file

print(b)

得到结果:

--hidden-import fabio.adscimage --hidden-import fabio.binaryimage --hidden-import fabio.bruker100image --hidden-import fabio.brukerimage --hidden-import fabio.cbfimage --hidden-import fabio.converters --hidden-import fabio.datIO --hidden-import fabio.directories --hidden-import fabio.dm3image --hidden-import fabio.dtrekimage --hidden-import fabio.edfimage --hidden-import fabio.eigerimage --hidden-import fabio.esperantoimage --hidden-import fabio.fabioformats --hidden-import fabio.fabioimage --hidden-import fabio.fabioutils --hidden-import fabio.file_series --hidden-import fabio.fit2dimage --hidden-import fabio.fit2dmaskimage --hidden-import fabio.fit2dspreadsheetimage --hidden-import fabio.GEimage --hidden-import fabio.hdf5image --hidden-import fabio.HiPiCimage --hidden-import fabio.jpeg2kimage --hidden-import fabio.jpegimage --hidden-import fabio.kcdimage --hidden-import fabio.limaimage --hidden-import fabio.mar345image --hidden-import fabio.marccdimage --hidden-import fabio.mpaimage --hidden-import fabio.mrcimage --hidden-import fabio.nexus --hidden-import fabio.numpyimage --hidden-import fabio.openimage --hidden-import fabio.OXDimage --hidden-import fabio.pilatusimage --hidden-import fabio.pixiimage --hidden-import fabio.pnmimage --hidden-import fabio.raxisimage --hidden-import fabio.readbytestream --hidden-import fabio.setup --hidden-import fabio.sparseimage --hidden-import fabio.speimage --hidden-import fabio.templateimage --hidden-import fabio.TiffIO --hidden-import fabio.tifimage --hidden-import fabio.xsdimage --hidden-import fabio._version --hidden-import fabio.__init__

然后将这一大串粘贴到原来的字符串里面,得到:

pyinstaller --noconfirm --onedir --windowed --add-data "C:/Users/bxx/Desktop/asdf/proccesing/icons;icons/"  --hidden-import fabio.adscimage --hidden-import fabio.binaryimage --hidden-import fabio.bruker100image --hidden-import fabio.brukerimage --hidden-import fabio.cbfimage --hidden-import fabio.converters --hidden-import fabio.datIO --hidden-import fabio.directories --hidden-import fabio.dm3image --hidden-import fabio.dtrekimage --hidden-import fabio.edfimage --hidden-import fabio.eigerimage --hidden-import fabio.esperantoimage --hidden-import fabio.fabioformats --hidden-import fabio.fabioimage --hidden-import fabio.fabioutils --hidden-import fabio.file_series --hidden-import fabio.fit2dimage --hidden-import fabio.fit2dmaskimage --hidden-import fabio.fit2dspreadsheetimage --hidden-import fabio.GEimage --hidden-import fabio.hdf5image --hidden-import fabio.HiPiCimage --hidden-import fabio.jpeg2kimage --hidden-import fabio.jpegimage --hidden-import fabio.kcdimage --hidden-import fabio.limaimage --hidden-import fabio.mar345image --hidden-import fabio.marccdimage --hidden-import fabio.mpaimage --hidden-import fabio.mrcimage --hidden-import fabio.nexus --hidden-import fabio.numpyimage --hidden-import fabio.openimage --hidden-import fabio.OXDimage --hidden-import fabio.pilatusimage --hidden-import fabio.pixiimage --hidden-import fabio.pnmimage --hidden-import fabio.raxisimage --hidden-import fabio.readbytestream --hidden-import fabio.setup --hidden-import fabio.sparseimage --hidden-import fabio.speimage --hidden-import fabio.templateimage --hidden-import fabio.TiffIO --hidden-import fabio.tifimage --hidden-import fabio.xsdimage --hidden-import fabio._version --hidden-import fabio.__init__ "C:/Users/bxx/Desktop/asdf/proccesing/main.py"

然后就打包成功了,虽然我到现在也不知道为什么找不到那个包下面的所有文件,不过还好解决了我的问题。做个记录吧。

你可能感兴趣的:(python,python,pyinstaller)