传递参数到python二进制可执行文件

时间:2015-04-11 15:29:12

标签: python python-2.7

我正在尝试运行在命令行中传递参数的python脚本。我正在做的方式如下:

from sys import argv
x, y = argv

当我尝试运行脚本时:

./tst.py 23 1421 (the integers being the arguments)

我遇到以下错误:

ValueError: too many values to unpack

我最终使用pyinstaller将此脚本转换为二进制文件,并且可以从任何外部应用程序调用可执行文件(例如:Java代码)。

在这个特定的问题以及最终将参数传递给二进制文件的任何更好的方法中,我们将非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

sys.argv包含脚本名称,因此列表中包含三个值,而不是两个。

打开包装时考虑到这一点;要么忽略第一个元素:

x, v = sys.argv[1:]

或包含其他目标:

script, x, v = sys.argv

来自sys.argv documentation

  

传递给Python脚本的命令行参数列表。 argv[0]是脚本名称(取决于操作系统是否为完整路径名)。