【发布时间】:2020-06-23 20:31:19
【问题描述】:
我创建了一个 python 脚本,我想在我的树莓派上编译成一个可执行文件,但是我对 linux 的不熟悉正在妨碍我。为什么我在运行 pyinstaller 创建的可执行文件时遇到错误,而我的脚本在终端中运行良好,否则?
为了检查脚本是否可以在我的 pi 上正常运行,我导航到终端中的正确目录并运行以下命令。
python <my python file>.py
我没有收到任何错误。它使用 requests 库发出 http post 请求,并使用 opencv 库进行图像压缩。看到它运行成功,我尝试安装 pyinstaller 并使用它将我的脚本编译成 linux 可执行文件。我安装了它。
pip install pyinstaller
它似乎安装没有错误。不幸的是,我尝试了以下代码开始编译,但遇到了错误。
pyinstaller <my python file>.py
这给了我“找不到命令”的错误。相反,我尝试了以下代码来运行它。
python -m PyInstaller <my python file>.py
这运行成功(尽管我不完全理解其中的区别),我导航到名为 dlist 的新目录以查找可执行文件。我找到了可执行文件,但现在我发现了一个新问题。当我导航到终端中的 dlist 目录并运行可执行文件时,出现以下错误。
Traceback (most recent call last):
File "/home/Jonah/Downloads/ocr_with_api.py", line 3, in <module>
import requests
File "/tmp/pip-unpacked-wheel-RITpob/PyInstaller/loader/pyimod03_importers.py", line 391, in load_module
File "/usr/lib/python2.7/dist-packages/requests/__init__.py", line 60, in <module>
from .packages.urllib3.exceptions import DependencyWarning
ImportError: No module named urllib3.exceptions
[6374] Failed to execute script ocr_with_api
谁能帮帮我?有一段时间,错误消息的结尾是说没有名为 requests 的模块,但似乎我可能已经修复了这个问题,同时还收到一个新错误,说我没有名为 urllib3.exceptions 的模块...我真的很困惑.
仅供参考 - 当我在终端中输入 python --version 时,它告诉我我正在使用 Python 2 的版本。当我在终端中输入 python3 --version 时,它告诉我我正在使用最多日期版本。只要运行正常,我在 Python 2 中编译我的脚本就没有问题,我假设我只需要分别在终端中键入 python3 和 pip3 而不是 python 和 pip 即可使用 python 3 安装.
【问题讨论】:
-
似乎编译时没有捆绑依赖Possible solution to bundle the dependencies
标签: python raspberry-pi pyinstaller raspbian