2015-06-11 39 views
1

我的桌面上有一个名为myFile.py的文件。这是文件:Vim - 如何在python shell中运行当前的python3文件?

class Node: 
    def __init__(self, data, next): 
     self.data = data 
     self.next = next 

    def __str__(self): 
     self = node 
     while node.next: 
      print(node.data) 
      node = node.next 
     return node.data 

我通常编辑IDLE文件。在IDLE中,我可以单击运行 - >运行模块(F5)来运行该文件。在IDLE中单击“运行模块”后,它会打开python shell,我可以创建一个节点并使用当前文件。

我不再使用IDLE(我使用GVim键入/编辑代码)。 GVim可以运行python shell中的当前打开文件吗?

我试着做

:!python3 % 

,但我这样做的时候,gVim的只是说:

Press ENTER or type command to continue 

,当我按enter键,没有任何反应。

注意:我正在使用Python3。

回答

3

当您执行:!python3 &时,您实际上正在运行一个执行命令python3 myFile.py的shell。这将以非交互方式运行你的程序,因为你的程序不做任何事情,它只是定义一个类并结束。

您可以用:!python3 -i %强制交互模式。

另外,你也可以不带参数地做:!python3:它会启动一个交互式的python shell。在那里您可以编写import myFilefrom myFile import *,然后创建您的Node对象。

+0

嗯,有趣。我的文件被称为“LinkedList.py”。当我这样做:!python3没有参数,然后“import LinkedList”它说“ImportError:没有名为'LinkedList'的模块”。同样如果我做“导入LinkedList.py”。任何想法为什么? “:!python3 -i%”虽然工作,所以非常感谢。 – user2719875

+0

@ user2719875:这可能是因为GVim运行的当前目录不是文件所在的目录。您需要移到那里('cd')或导入模块的完整路径。 '%'已经包含了文件的完整路径,所以它可以正常工作。 – rodrigo

相关问题