将命令行参数传递给打包为.exe和py2exe的Python脚本?

将命令行参数传递给打包为.exe和py2exe的Python脚本?,python,command-line,exe,py2exe,argument-passing,Python,Command Line,Exe,Py2exe,Argument Passing,我有一个python脚本,它将作为exe(使用py2exe打包)在未安装python的机器上运行。目前,我使用带有urllib2的代理处理程序将代理信息写入脚本(请参见下面的代码),但我希望通过命令行将用户和pw作为参数进行传递,我使用命令行运行exe。有人知道怎么做吗?感谢您的帮助 def get_response(url, query='', get_json=True): opener = urllib2.build_opener( urllib2.

我有一个python脚本,它将作为exe(使用py2exe打包)在未安装python的机器上运行。目前,我使用带有urllib2的代理处理程序将代理信息写入脚本(请参见下面的代码),但我希望通过命令行将用户和pw作为参数进行传递,我使用命令行运行exe。有人知道怎么做吗?感谢您的帮助

def get_response(url, query='', get_json=True):
    opener = urllib2.build_opener(
                urllib2.HTTPHandler(),
                urllib2.HTTPSHandler(),
                urllib2.ProxyHandler( 
                   {'https': 'http://user:password@myIPaddress:8080',
                    'http': 'http://user:password@myIPaddress:8080'}
                ))
    urllib2.install_opener(opener)
    encoded = urllib.urlencode(query)
    request = urllib2.Request(url, encoded)
    if get_json:
        return json.loads(urllib2.urlopen(request).read())
    return urllib2.urlopen(request).read()

sys.argv
不起作用?还没有尝试过--如何/在哪里使用它?请参阅模块文档。通常,
argv[0]
是脚本名,
argv[1:://code>是其余的命令行参数。py2exe的偏移量可能是1,您必须检查一下。如果我没有弄错,并假设py2exe的偏移量为1,那么代理处理程序应该是这样的`{'https':'http://'+sys.arg[0]+':'+sys.arg[0]+'IPaddress:8080','https://'+sys.arg[0]+':'+sys.arg[0]+'IPaddress:8080'}您可以从py2exe脚本中打印、显示或以其他方式输出
sys.argv
(注意它是
argv
而不是
arg
)的值,并查看其中的内容吗?这将告诉您其中是否包含信息,以及用户名和密码的索引是什么,以便您可以使用它们设置代理。