问题描述
笔者用Pyinstaller打包成exe文件,在其他电脑端运行时出现如下问题
ImportError: C extension: No module named 'pandas._libs.tslibs.base' not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --force' to build the C extensions first.
笔者认为可能时pandas模块没有打包完整,于是修改打包命令:
Pyinstaller -D -i icon.ico --hidden-import=torch --hidden-import=pandas --hidden-import=torchvision Dislden_yolo_4.19.py --additional-hooks-dir=.
--hidden-import
导入pandas模块,但依旧没有解决问题
问题解决
方法一:
于是笔者根据错误提示找到pandas._libs.tslibs.base
,对比原电脑pandas库和打包文件夹下的pandas库如下:
于是笔者将缺少的文件复制到打包文件内,问题解决!
方法二:
照常的生成 xxx.spec 文件,修改spec文件,在文件中添加以下代码:
# Add the following
def get_pandas_path():
import pandas
pandas_path = pandas.__path__[0]
return pandas_path
dict_tree = Tree(get_pandas_path(), prefix='pandas', excludes=["*.pyc"])
a.datas += dict_tree
a.binaries = filter(lambda x: 'pandas' not in x[0], a.binaries)
修改打包指令如下:
Pyinstaller -D -i icon.ico --hidden-import=torch --hidden-import=pandas --hidden-import=torchvision Dislden_yolo_4.19.spec --additional-hooks-dir=.