2017-02-14 41 views
0

我正在使用Python的bot在网站上创建帐户。当我在安装了python的Windows机器上使用它时,它工作正常。我昨天买了一台Linux VPS(Ubuntu 16.04),我的脚本显然不再工作了。这是我得到我的Linux机器上的错误:Python的新手问题,脚本在其他操作系统上正常工作

Traceback (most recent call last): 
    File "roblox.py", line 2, in <module> 
    from utils import * 
    File "/home/py/newbot/utils.py", line 18 
    key, *values = line.split(" ") 
     ^
SyntaxError: invalid syntax 

脚本行其指的是这样的

def string_to_dict(headers): 
headers_dict = {} 
for line in headers.split("\n"): 
    if not line: continue 
    line = line.strip() 
    key, *values = line.split(" ") 
    key = key[:-1] 
    if not (key and values): continue 
    headers_dict[key] = " ".join(values) 
return headers_dict 

任何想法可能在哪里呢?

+2

您使用的是不支持该语法的Python版本。如果你在Ubuntu 16上,尝试调用'python3' –

+1

可能运行python2而不是3;在执行时指定版本(/ usr/bin/python3 /home/py/robox.py)或更新#! @ 最佳。 (#!/ usr/bin/python3) – wom

回答

0

正如在其他答案中提到的,你需要在Python3中运行它。最简单的回答是:

  1. 安装python3,这可能还不是你的机器上:$ sudo apt-get update; sudo apt-get install python3

  2. 得到你的脚本文件使用认领的习惯。将#!/usr/bin/env python3添加到脚本的第一行以指示shell调用python3而不是python2 - 大多数系统都将/ usr/bin/python别名为python2安装。

您可以在Bash shell(Ubuntu 16.04的默认shell)here中找到更多关于源文件的信息。

更长的答案 - 如果您想知道为什么代码不能在Python2中工作,但在Python3中有效 - 是Python3引入了在PEP 3132中的扩展迭代解包,但是此功能并未在Python2中实现。

1

此语法在Python 2中无效。请使用python3运行脚本。

+0

Welp,谢谢!现在工作正常,你救了我的一天。 –

相关问题