这是一个相当复杂的问题。
我的 Python 脚本使用模块 PIL,其加载方式为:
from PIL import ImageTk, Image
该脚本在 IDE 中运行良好,当我从 cmd 启动它时也运行良好:
python script.py
但是当我尝试双击打开它时,它给出了导入错误:没有名为 PIL 的模块。我在 Anaconda 中使用 python 2.7。我卸载了 PIL 并安装了 Pillow,但问题仍然存在。我将 PIL 目录复制到工作目录,但随后出现 ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。我还需要将其编译为可执行文件,但打开可执行文件又出现另一个错误:包“Tcl”的版本冲突:有 8.5.18,需要 8.5.15。
当我省略脚本中使用 PIL 的部分时,它编译得很好。有没有办法鱼与熊掌兼得 - 在 tkinter 界面中使用图像并使用 py2exe 进行编译?
最佳答案
事实证明,双击确实使用了不同的解释器。双击在 Program Files (x86) 中使用了 32 位 python 版本,而通过命令行输入 python script.py 打开它则使用了 Anaconda 安装目录中的 64 位 python 版本。显然我是从 python.org 安装了 python,然后忘记了它并安装了 Anaconda。更改文件关联解决了问题,谢谢你们的帮助。
关于python - 直接在Windows中导入错误: no module named PIL when opening the . py文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787195/