1.不需要性能,想脚本启动,加到shell:startup里就行了

Start.bat

python e:\flask\index.py


点击执行没问题,但不想要cmd这个黑窗口啊,百度了下windows的后台启动进程方法,加上了start/b ,然并卵。

2.然后想通过windows自家的IIS,据说是可以安装fastcgi部署flask,具体点击移步:http://luyaliang.blog.51cto.com/3448477/1949849

 

然而,我要告诉大家,这里IIS不是重点。因为部署访问会报错:

    ifaces.load_from_powershell()
  File"C:\Python34\lib\site-packages\scapy\arch\windows\__init__.py", line151, in load_from_powershell
    for i in get_windows_if_list():
  File"C:\Python34\lib\site-packages\scapy\arch\windows\__init__.py", line77, in get_windows_if_list
    ps = sp.Popen(['powershell', '-NoProfile','Get-WMIObject -class Win32_NetworkAdapter', '|', 'select Name,@{Name="InterfaceIndex";Expression={$_.InterfaceIndex}},@{Name="InterfaceDescription";Expression={$_.Description}},@{Name="InterfaceGuid";Expression={$_.GUID}},@{Name="MacAddress";Expression={$_.MacAddress.Replace(":","-")}}| where InterfaceGuid -ne $null', '|', 'fl'], stdout = sp.PIPE, universal_newlines= True)
  File"C:\Python34\lib\subprocess.py", line 813, in __init__
    errread, errwrite) =self._get_handles(stdin, stdout, stderr)
  File"C:\Python34\lib\subprocess.py", line 1033, in _get_handles
    errwrite =_winapi.GetStdHandle(_winapi.STD_ERROR_HANDLE)
OSError: [WinError 6] 句柄无效。

 

  • Subprocess.py     scapy\arch\windows\__init__.py 都不是自己的py文件,试着修改了下__init__.py 77 行,sp.Popen('…',stdin=sp.PIPE)     ,然后就不报错了,页面也出来了。

python scapy模块一直执行错误:OSError: [WinError 9] bad file 描述符

估计还是和上面的报错有关系,拿不到subporcess.Popen的stdin。后来就没有然后了。。。


3.于是转移阵地,把目光又转回windows的脚本自启动了。

    1. 查了下还有种方式是写vb脚本来实现无窗口后台运行:

flask_start.vbs

set ws=WScript.CreateObject("WScript.Shell")
ws.Run "e:\flask\startNaNd",0


直接点击运行也是没有问题的,80端口如约而启。

  1. 可重启之后,等半天都启不来,后来不用vbs脚本测试一下startNaNd报错- -!:

大概的意思是subprocess.Popen()执行powershell 的命令执行超时了,命令大概是获取ip地址和路由的网络相关的信息的,所以,想是不是网络那时没启来呢,网上搜了一下关于自启动在网络之后的问题没有搜到有价值的东西。

后来就直接vbs 脚本sleep1分钟,然后在执行startNaNd. 这样是可以的。但一直不知道那个命令为什么会超时。难道是powershell这个网络相关的模块或服务没启来吗?windows叫人难以琢磨!

set ws=WScript.CreateObject("WScript.Shell")
wscript.sleep 60000
ws.Run "e:\flask\startNaNd",0