Php Python脚本中关于str的错误(sys.argv[1])

Php Python脚本中关于str的错误(sys.argv[1]),php,python,arguments,parameter-passing,Php,Python,Arguments,Parameter Passing,错误是: import MySQLdb as mdb import math import sys from decimal import Decimal conn=mdb.connect('localhost','root','','testdb') c=conn.cursor() user_id=str(sys.argv[1]) lati=str(sys.argv[2]) longi=str(sys.argv[3]) radius=int(str(sys.argv[4])) #use

错误是:

import MySQLdb as mdb
import math
import sys 
from decimal import Decimal

conn=mdb.connect('localhost','root','','testdb')
c=conn.cursor()

user_id=str(sys.argv[1])
lati=str(sys.argv[2])
longi=str(sys.argv[3])
radius=int(str(sys.argv[4]))

#user_id=1
#lati='28.635308'
#longi='77.224960'
#radius=1.5
回溯(最近一次呼叫最后一次):
文件“C:\Python27\recomment.py”,第9行,在
用户id=str(sys.argv[1])
索引器:列表索引超出范围

但是#注释的伪值工作正常。解决此错误有什么帮助吗?

检查错误的一种方法是打印出sys.argv列表,并检查其包含的元素数。错误的输出表示在sys.argv中只有一个元素(很可能是脚本本身-脚本名称-)。最可能的情况是,在运行脚本时,您没有提供参数(必须提供4个参数)。

如何运行此脚本?我在PHP页面中使用shell_exec()命令调用它。Python空闲Shell中指示了eroor。我的意思是,您是否在调用中传递了4个参数?您调用的确切命令是什么?
我认为最后一条评论非常有用。您应该将其包含在原始问题中,以便php人员也可以帮助您
我用四个参数调用了脚本,这有什么错误吗?我对您的Python和php文件进行了一些实验,我不确定,但行
radius=int(str(sys.argv[4]))
不兼容(因为字符串不能级联到int,函数必须是float)。你可以试试这个
radius=float(str(sys.argv[4]))
。我希望它能解决你的问题。
Traceback (most recent call last):
  File "C:\Python27\recommend.py", line 9, in <module>
    user_id=str(sys.argv[1])
IndexError: list index out of range