将命令行参数传递给打包为.exe和py2exe的Python脚本?
我有一个python脚本,它将作为exe(使用py2exe打包)在未安装python的机器上运行。目前,我使用带有urllib2的代理处理程序将代理信息写入脚本(请参见下面的代码),但我希望通过命令行将用户和pw作为参数进行传递,我使用命令行运行exe。有人知道怎么做吗?感谢您的帮助将命令行参数传递给打包为.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.
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
)的值,并查看其中的内容吗?这将告诉您其中是否包含信息,以及用户名和密码的索引是什么,以便您可以使用它们设置代理。