python - 为什么我的 py 脚本在终端中运行良好,但在使用 pyinstaller 编译时出现错误?
问题描述
我创建了一个 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 安装.
解决方案
目前检查 pyinstaller 文档是否支持 python 2.7 和 3.5 到 3.7 你在使用 python 3.8 吗?有一种方法可以使 python 在终端中相关,当您键入时可能
pyinstaller <my python file>.py
Linux 或 raspbian 根本不承认它是一个 python 库或 python 命令,这就是为什么你必须在它前面加上“python -m” youtube上有很多教程介绍了如何在 linux 终端中运行 python 仍然会在树莓派上工作。所以是的,请检查您的 python 版本是否可以与 pyinstaller 一起使用并回复我们:D
推荐阅读
- javascript - 如何使用 d3 js 在 SVG 中正确使用 Use 标签?
- python - SageMath 中的联立方程
- graphql - GraphQL 替代 Restful API 还是使用它?
- google-apps-script - 如何让多个人编辑谷歌表格而不会看到彼此的变化?
- jquery - 我试图让这个光标效果反应
- entity-framework - EFCore 2.2.2 过滤相关子实体
- php - 通过 PHP 执行 python 脚本
- c - C - 使用 fgets() 填充通过循环迭代的结构数组。如何在同一行打印值?
- angular - switchMap angular observable 后发出的问题
- android - 从 android studio 编码并在 python raspberry pi 中解码的图片