繁体   English   中英

python的新手问题,脚本在其他操作系统上也能正常工作

[英]Newbie issue with python, script works fine on other os

我正在使用带有python的机器人在网站上创建帐户。 当我在装有python的Windows机器上使用它时,它工作正常。 我昨天(Ubuntu 16.04)买了一个Linux VPS,我的脚本显然不再起作用。 这是我在Linux机器上得到的错误:

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

任何想法可能出了什么问题?

该语法在python 2中无效。使用python3运行脚本。

如其他答案所述,您需要在Python3中运行它。 最简单的答案是:

  1. 安装python3,它可能尚未在您的计算机上: $ sudo apt-get update; sudo apt-get install python3 $ sudo apt-get update; sudo apt-get install python3

  2. 养成在脚本文件中使用shebang的习惯。 在脚本的第一行中添加#!/usr/bin/env python3 ,以指示外壳程序调用python3而不是python2 -大多数系统都将/ usr / bin / python别名为python2安装。

你可以找到更多有关的Bash shell(在Ubuntu 16.04默认的shell)采购文件在这里

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM