【问题标题】:Run python script from shell and keeping defined modules/data从 shell 运行 python 脚本并保留定义的模块/数据
【发布时间】:2016-02-29 23:42:41
【问题描述】:

我是 Python 新手,我想知道如何保留从 Python shell 运行的脚本中的模块和数据?

例如:我有脚本 helloworld.py,它包含:

import numpy as donkey
a = 55

然后我想从我的 Python shell 运行该脚本:

execfile('helloworld.py')

但是,如果我随后尝试调用“a”或“donkey”,则找不到它们。 我该如何解决?

【问题讨论】:

  • 你为什么用execfile运行它?
  • 我还能使用其他功能吗?我的脚本很大,这就是为什么我想在一开始就运行所有内容,然后能够访问我定义的函数/模块等。
  • 为什么不直接import呢?
  • ok 好像不错,导入的脚本应该如何执行?
  • 什么意思?脚本顶层的所有代码(除非由if __name__ == '__main__': 保护)将在导入时执行。

标签: python shell module terminal


【解决方案1】:

我假设您正在使用 IDLE。 IDLE 不是 Unix 意义上的 shell。所以没有直接等效的 bash shell . ~/.bash_profile

我改为编辑文件,然后使用 F5 运行模块。我所有的变量、函数和类都被加载了。我可以使用解释性外壳进行操作。但是,如果我运行另一个模块,我会重置环境,丢失第一个模块的定义。

execfile() 方法仅限于 Python 2,如下所述: How to run a Python script from IDLE command line?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    相关资源
    最近更新 更多