python - 使用 pysinstaller 构建 python 项目后找不到模块
问题描述
我最近完成了一个我已经工作了一段时间的项目。我应该在课堂上运行在 linux 上的智能板上展示我的工作。考虑到我无法下载它的模块,因为我没有 sudo 权限,也没有互联网。所以为了解决这个问题,我决定使用 pyinstaller 来构建它。我的设备似乎一切正常,但是当我在虚拟框中再次检查时,会弹出此错误。
Traceback (most recent call last):
File "main.py", line 4, in <module>
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "PyInstaller/loader/pyimod03_importers.py", line 540, in exec_module
File "matplotlib/__init__.py", line 923, in <module>
File "matplotlib/__init__.py", line 608, in matplotlib_fname
RuntimeError: Could not find matplotlibrc file; your Matplotlib install is broken
[8025] Failed to execute script main
那么我该如何构建它以便它适用于所有设备而无需安装任何模块
解决方案
matplotlib 需要在 4 个特定位置之一找到配置文件名 matplotlibrc,第一个是 courant 目录(请参阅https://matplotlib.org/tutorials/introductory/customizing.html#the-matplotlibrc-file)一个根据需要准备的文件可以通过添加 --add-data=matplotlibrc; 嵌入到 exe 中。到构建命令(替换 ; 与 : 对于非 Windows 系统)
推荐阅读
- java - Android:将主题添加到现有项目
- python - 如何将 shapely.geometry.point.Point 对象列表转换为 python 中的经纬度坐标列表
- sql - 替换列中间的随机 varbinary 数据 (MSSQL)
- vb.net - 在不使用连接字符串的情况下将 Excel 转换为数据表?
- python - 如何将数据框列更新为特定列表,如果这些列不存在,它们可以是 null 或 NA 或 0
- c# - 使用 LINQ 从具有嵌套数组的类中获取子属性值和父属性值
- dart - 使用外部 JS 文件和 dart2js
- eslint - 如何为类属性名称定义 ESLInt 规则?
- python - 如何使用自定义字段值自定义 Jira api:jql 以运算符开头
- sql-server - XQuery sql Join在join不匹配时插入空节点