gpt4 book ai didi

python - 为什么找不到导入命令?

转载 作者:太空狗 更新时间:2023-10-29 19:31:06 24 4
gpt4 key购买 nike

我正在使用 fileinput 模块中的 input 函数通过 pipesinput file 接受脚本 这是最小脚本:

finput.py

import fileinput

with fileinput.input() as f:
for line in f:
print(line)

使此脚本可执行后,我运行 ls | ./finput.py 并得到意外错误信息

./finput.py: line 1: import: command not found
./finput.py: line 3: syntax error near unexpected token `('
./finput.py: line 3: `with fileinput.input() as f:'

我找到的唯一修复方法是在导入语句之前添加 #!/usr/bin/env/python3

但这个问题似乎只与 fileinput 模块有关。由于以下脚本在没有 shebang 的情况下运行良好:

fruit.py

import random

fruits = ["mango", "ananas", "apple"]
print(random.choice(fruits))

现在我错过了什么?既然 finput.py 中的 shebang 不是必需的,为什么找不到 import 命令?

最佳答案

您需要告诉您的操作系统这是一个 Python 程序,否则,它会被解释为一个 shell 脚本(其中找不到 import 命令)。

如您所见,这是通过使用 shebang 行完成的:

#!/usr/bin/env python3

仅当您要像这样运行脚本时才需要这样做:./script.py,它告诉您的操作系统“运行此可执行文件”。这样做需要您的操作系统确定它应该如何运行该程序,并且它依赖于 shebang 行(除其他外)。

但是,如果您运行 python script.py(我猜您是为 fruit.py 执行的),那么 Python 不会询问您的操作系统是否是一个Python 程序与否,所以 shebang 行并不重要。

关于python - 为什么找不到导入命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27563854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com