openpyxl不能用作EXE

时间:2018-05-24 15:08:19

标签: python python-3.x hook pyinstaller openpyxl

运行我的exe的错误消息:

ModuleNotFoundError: No module named 'openpyxl'

testHi.py

#simple test to see if openpyxl module works
import openpyxl

print ("hi")
input()

hook-openpyxl.py

# taken from pyinstaller dev team, store in same dir as testHi.py 
from PyInstaller.utils.hooks import collect_data_files

datas = collect_data_files('openpyxl')

cmd行输入:

pyinstaller.exe --onefile --icon=py.ico --additional-hooks-dir=. hiTest.py

我运行hiTest并得到上面的错误。

我到处寻找这个解决方案。谁能告诉我我做错了什么。

3 个答案:

答案 0 :(得分:1)

我通过通过Pip安装而不是通过Pycharm安装软件包来解决了问题,Pyinstaller能够找到该软件包。

通过查看命令提示符中的文本,我得到了这个主意,看到它正在加载通过Pip而非Pycharm安装的模块。

答案 1 :(得分:0)

通过将python库中的以下文件夹/文件包含在我从中运行pyinstaller的同一文件夹中,我可以使用auto-py-to-exe(使用pyinstaller)使此工作正常运行。

  • jdcal.py
  • openpyxl(文件夹)
  • et_xmlfile(文件夹)

pyinstaller命令:

    pyinstaller -y -F "[directory]/myscript.py"



关于图书馆位置的说明:

我的Windows库位置为:C:\ users [用户名] \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib

这些软件包位于“ site_packages”文件夹中

答案 2 :(得分:0)

使用 --hiddenimport openpyxl

长期使用以前的解决方案,它对我有用,我能够强制导入 openpyxl。