python - pyinstaller" RuntimeWarning:父模块' PyInstaller.hooks.hook-PIL'处理绝对导入时未找到"和" tcl"相关错误

时间:2015-08-05 13:40:54

标签: python macos tcl pyinstaller pillow

尝试使用pyinstaller创建可检索文件时收到警告消息。安装Pillow后出现此警告。以前我有任何警告,并能够通过。

pyinstaller得到的警告是:

7314 INFO: Analyzing main.py
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyInstaller-2.1.1dev_-py2.7.egg/PyInstaller/hooks/hook-PIL.Image.py:14: RuntimeWarning: Parent module 'PyInstaller.hooks.hook-PIL' not found while handling absolute import
  from PyInstaller.hooks.shared_PIL_Image import *

此外,当我尝试运行我的代码的可执行文件的exe / consol版本时,这些版本位于pyinstaller(dist/main/main)创建的dist文件夹中,这些都会显示出来。

Traceback (most recent call last):
  File "<string>", line 26, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyInstaller-2.1.1dev_-py2.7.egg/PyInstaller/loader/pyi_importers.py", line 276, in load_module
    exec(bytecode, module.__dict__)
  File "/Users/..../build/main/out00-PYZ.pyz/PIL.PngImagePlugin", line 40, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyInstaller-2.1.1dev_-py2.7.egg/PyInstaller/loader/pyi_importers.py", line 276, in load_module
    exec(bytecode, module.__dict__)
  File "/Users/..../build/main/out00-PYZ.pyz/PIL.Image", line 53, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyInstaller-2.1.1dev_-py2.7.egg/PyInstaller/loader/pyi_importers.py", line 276, in load_module
    exec(bytecode, module.__dict__)
  File "/Users/..../build/main/out00-PYZ.pyz/FixTk", line 74, in <module>
OSError: [Errno 20] Not a directory: '/Users/.../dist/main/tcl'
logout

[Process completed]

所以,我尝试卸载pillow,安装tk tcl dev版本。然后安装pillow。即使这没有帮助。

我也尝试重新安装pyinstaller。也没有帮助

更新1:

Pyinstaller.hooks.hook-PIL.py目录中似乎缺少Pyinstaller/hooks个文件。它在所有平台上都缺失(Mac,Windows和Linux)。这是我在Windows上发出的警告/错误消息,这与我在mac和linux上的消息相同。windows error/warning 后来我发现linkjust to need Python import machinery happy。所以我创建了如此说。然后我没有在所有平台上得到相同的错误,但在Mac上我仍然得到PILImagePluginImageFixTk错误

1 个答案:

答案 0 :(得分:1)

rm -rf /usr/local/lib/python2.7/dist-packages/requests*的解决方案:

我发现了什么问题,我在tcl遇到的每一个问题都是OSX本身(恰好是OS)。默认情况下,Python附带mac OS。这个版本的python可能对学习基本python很有用,但不适合开发目的。

安装brew的python有帮助。我跟着这个SO link。做完这些之后,我仍然遇到错误。后来我不得不改变macport上的路径。基本上重新安排它们应该有效。但是,我仍然没有做对。

然后我不得不改变/etc/paths,它适用于大多数用户,但我仍然得到mac版本的python和pip,而不是brew的python版本。

最后我不得不重启机器几次并重复执行.bash_profile/etc/paths步骤以获得系统范围的效果以接受brew的python版本和pip

.bash_profile的解决方案:

只需添加一个名为PIL的文件,其中包含空内容就可以达到目的。我发现link的钩子文件内容为hook-PIL.py

要创建的位置

对于mac: pyinstaller 实际上对于mac,此步骤不是必需的。当我们通过brew安装python并更改路径时,您尝试稍后通过/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyInstaller-2.1.1dev_-py2.7.egg/PyInstaller/hooks/pip install安装的所有内容都会选择不同的路径。一切都会得到照顾。

适用于Windows的

source packages

**在创建文件然后创建文件之前,请检查这是否是您计算机上的有效路径。我不确定或我不知道是否只是添加一个空文件是正确的方法。但它对我有用