我最近使用 PyQt 和其他一些我想分发给其他人的软件包制作了一个脚本,并且我一直在尝试使用 PyInstaller 将它放入一个 exe 中。
不过,我遇到的问题是“导入失败,无法找到”,我收集到的问题与我需要为某些模块创建 Hook 文件这一事实有关。我已经尝试按照 PyInstaller 手册上的有限指南进行操作,但这似乎并不像我尝试的那样有效。有任何想法吗?生成的 .exe 文件在“from import obspy.core import *”这一步失败了,所以大概是在它之前发生的导入就好了。
我对脚本的导入如下:
import os.path
import sys
import string
import fnmatch
import numpy as np
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from obspy.core import read
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
from matplotlib.widgets import MultiCursor
from obspy.signal import rotate
from obspy.signal import filter
最佳答案
#1 规则是 python 脚本不能与模块同名(即 mail.py 会导致导入名为“mail”的模块时出现问题)。我的猜测是,您可能有一个名为 obspy.py 的脚本或具有该名称的 .pyc 文件。
就自定义模块的导入设置而言,这对我有用。
创建一个名为 Foo 的模块和一个名为 Bar 的小部件。在名为 Foo/__init__.py 的文件中,列出要导入的模块:
import Bar
然后在你的脚本中:
From Foo import Bar
打印 Bar.helloworld
关于python - 如何为 PyInstaller 创建 Hook 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6407788/