我正在为我的程序运行Python 2.7的虚拟环境。 在Windows上创建可执行文件后似乎有问题。 我运行了 venv / Scripts / pyinstaller.exe -F main.py 一切似乎都很好。但是当我点击创建的可执行文件 main.exe 时。 有一个错误。
尝试并测试
然而,毕竟,当我运行可执行文件时,系统会提示我[请参阅Importerror]。
调试它是一件非常痛苦的事情,因为显示错误的命令提示符不会暂停但几乎立即关闭。
寻找建议 我希望有关解决Pyinstaller的建议。任何阅读资源都会很好。 通常,我对python没有任何问题,因为Pycharm有几个方便的调试工具可以帮助我识别问题
答案 0 :(得分:16)
我遇到了同样的问题并找到了这个帖子,但我设法从reference you posted(约pandas._libs.tslibs.timedeltas
)借用它来解决它,所以谢谢你!
在该文章中,如果您查看海报的日志,导致ImportError
的模块实际上是pandas._libs.tslibs.timedeltas
。但是你和我遇到的错误指的是np_datetime
。因此,从追溯日志中,我终于发现我们必须在hook-pandas.py
中编写的代码如下:
hiddenimports = ['pandas._libs.tslibs.np_datetime']
也许只有这一点才能解决你的问题, HOWEVER ,就我而言,一旦我解决了np_datetime
问题,就会出现其他非常相似的ImportError
问题(也与hiddenimports有关)关于熊猫),所以,如果你遇到同样的问题,只需按如下方式定义hiddenimports
:
hiddenimports = ['pandas._libs.tslibs.np_datetime','pandas._libs.tslibs.nattype','pandas._libs.skiplist']
<强> TL; DR:强>
您可以先尝试编写
hiddenimports = ['pandas._libs.tslibs.np_datetime']
进入hook-pandas.py
。但是,如果由于某种原因你遇到了我之后做的完全相同的问题,请尝试
hiddenimports = ['pandas._libs.tslibs.np_datetime','pandas._libs.tslibs.nattype','pandas._libs.skiplist']
如果您希望深入了解(或者遇到与我所做的不同的大熊猫ImportError
),这就是您的追溯记录中引用的pandas __init__.py
中的代码(行23至35):
from pandas.compat.numpy import *
try:
from pandas._libs import (hashtable as _hashtable,
lib as _lib,
tslib as _tslib)
except ImportError as e: # pragma: no cover
# hack but overkill to use re
module = str(e).replace('cannot import name ', '')
raise ImportError("C extension: {0} not built. If you want to import "
"pandas from the source directory, you may need to run "
"'python setup.py build_ext --inplace --force' to build "
"the C extensions first.".format(module))
从那我开始进入
C:\ Python27 \ LIB \站点包\ pandas_libs
和
C:\ Python27 \ LIB \站点包\ pandas_libs \ tslibs
文件夹,找到导致错误的模块的确切名称。
我希望能像我一样解决你的问题。
干杯!