【问题标题】:How to execute modules as scripts in Python如何在 Python 中将模块作为脚本执行
【发布时间】:2020-07-16 16:27:48
【问题描述】:

我创建了一个名为 fibo.pymodule,如教程所示,如下所示:

def fib(n):
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
        a, b = b, a+b
    print()

def fib2(n): 
    result = []
    a, b = 0, 1
    while a < n:
        result.append(a)
        a, b = b, a+b
    return result

然后我添加了

python fibo.py <arguments>

我在 fibo.py 的 f 上得到了一个 invalid syntax error

我在堆栈溢出方面看到过类似的问题,但对我来说没有任何意义。

我已经在这段代码上工作了一个小时。非常感谢您的帮助。

【问题讨论】:

  • 当你说“然后我添加了”,你到底是在哪里添加的?你确定你是从命令行运行它吗?你传递了什么参数?
  • 对于语法错误,也许你只是有一个超级旧版本的python。尝试在python3下运行。

标签: python function module


【解决方案1】:

您不应该收到语法错误。如果你这样做了,你试图在交互式控制台中运行它,而不是你的系统终端。如果您在系统终端中运行它,它将执行;什么都不会发生。

如果这是一个完整的模块,-m flag 可能有用。

否则,如果这只是一个独立的脚本,你需要一个“主”或实现相同的东西:

import sys

def fib(n):
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
        a, b = b, a+b
    print()


def main():
    arg = sys.argv[1]  # Grab the arguments passed to the script
    fib(int(arg))  # Obviously, add some error handling


if __name__ == "__main__":
    main()

然后,在您的终端中(不是像 iPython 这样的交互式控制台):

python fibo.py 100

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    相关资源
    最近更新 更多