NameError:name' runfile'仅在从脚本运行时才定义

时间:2018-04-02 17:01:43

标签: python python-3.x cmd nameerror

sima.py

import pyautogui as py
py.alert("Foo")

simaref.py

runfile('E:/Anyagok/Programozas/Python/projekts/gyak/Pyautogui/sima.py', 
        wdir='E:/Anyagok/Programozas/Python/projekts/gyak/Pyautogui')

这些都适用于从Spyder运行时。

sima.py也适用于cmd:

python.exe E:\Anyagok\Programozas\Python\projekts\gyak\Pyautogui\sima.py

但是simaref.py没有:

E:\Download\PROGIK\ANACONDA>python.exe E:\Anyagok\Programozas\Python\projekts\gyak\Pyautogui\simaref.py
Traceback (most recent call last):
  File "E:\Anyagok\Programozas\Python\projekts\gyak\Pyautogui\simaref.py", line 8, in <module>
    runfile('E:/Anyagok/Programozas/Python/projekts/gyak/Pyautogui/sima.py', wdir='E:/Anyagok/Programozas/Python/projekts/gyak/Pyautogui')
NameError: name 'runfile' is not defined

为什么不呢?

编辑: 得到了runfile()的想法:当在Spyder中运行代码时,它在控制台中显示例如:

runfile('E:/Anyagok/Programozas/Python/projekts/gyak/Pyautogui/simaref.py', wdir='E:/Anyagok/Programozas/Python/projekts/gyak/Pyautogui')

1 个答案:

答案 0 :(得分:0)

使用roganjosh的回答: 无法找到导入runfile()命令的位置,也许它是内置的东西。所以我将simaref.py更改为下面的代码,现在它可以正常工作。

exec(open("E:/Anyagok/Programozas/Python/projekts/gyak/Pyautogui/sima.py").read())