首页 > 解决方案 > What to do when python don't want to run a previous working program?

问题描述

This script was running ok before I upgraded from 15.1 to 15.2 (LInux LEAP)

import pixellib
import time
from pixellib.instance import instance_segmentation

segment_image=instance_segmentation()
segment_image.load_model("mask_rcnn_coco.h5")
start = time.time()
segment_image.segmentImage("thisone.png",output_image_name="thisone_ryzen.png",show_bboxes = True)
end = time.time()
print(f"Inference Time: {end-start:.2f}seconds")

Now I have these errors:

sirius:/cours/journalisme/ia/ryzen7 # ./rigolade.py 
./rigolade.py: line 4: from: command not found
./rigolade.py: line 6: syntax error near unexpected token `('
./rigolade.py: line 6: `segment_image=instance_segmentation()'

标签: python-3.x

解决方案


它曾经在您运行时运行python3 ./rigolade.py,但现在您正在运行./rigolade.py。通过这样做,并且不包括 Python 的 shebang 行,它试图将脚本作为 shell 命令执行。添加一个 shebang 行,如:

#!/usr/bin/env python3

到文件的顶部(第一行),它应该可以工作。或者只是像以前一样使用python3(或python依赖于环境)显式运行它。

直到第三行才出现错误的原因是因为许多 Linux 发行版实际上附带了一个名为import(通常是截图截图工具)的工具;您可能想删除它刚刚留在工作目录中的pixellib和文件。time但是from不是一个可识别的命令,并且括号与您的 shell 的语法规则不匹配,因此它从那时开始出错。


推荐阅读