cx_freeze, mpl_toolkits/basemap/如何在构建的library.zip中包含数据文件夹
我在尝试为我最初在opensuse上编写的图形界面程序创建一个.exe文件时遇到了很多困难。我想为Windows(XP系统)制作这个.exe文件。cx_freeze似乎更适合我的情况。构建文件夹创建得很好,但当我尝试运行这个.exe文件时,出现了以下错误:
“找不到项目数据目录。期待在 C:\Python\build\exe.win32-2.7\library.zip\mpl_toolkits\basemap\data”
你知道我该如何设置我的setup.py,以便将mpl_toolkits\basemap\data文件夹复制到library.zip中吗?
1 个回答
-2
在这里,我分享了我解决这个问题的有效方法:https://stackoverflow.com/a/26519937/2741329
我的解决方案需要做两个改动:
- 在cx_freeze的设置脚本中添加需要包含的文件
- 在用户脚本中添加一个操作系统环境变量
还有一个类似的问题也用同样的方法解决了,具体可以查看这里,只需在设置文件中添加一个包含文件列表的元组,比如include_files
可以写成[("C:\\Python31\\Lib\\site-packages\\PyQt4\\mpl-data", "mpl-data")]
。不过对于Basemap来说,这个方法还不够,因为cx_freeze默认会把它的脚本放到一个压缩文件里。