En py_script.py:

import os
import sys

l = len(sys.argv) 
if  l == 1:
    print 'no args'
else:
    if l > 1: 
        print 'first arg is %s'%sys.argv[1]
    if l > 2:
        print 'second arg is %s'%sys.argv[2]

Ahora en línea de comandos, en mi plataforma winXP:

d:\path\py_script.py 1 2

Rendimientos

first arg is 1
second arg is 2

Sin embargo, en mi plataforma Win7 me sale

no args

Si lo hago

d:\path\python py_script.py 1 2

Entiendo

first arg is 1
second arg is 2

¿Cómo puedo hacer que mi entorno Win7 funcione como se espera?

Algunos detalles:
win7 es de 64 bits.
py2.6.6 en win7, py 2.6.4 en winXP.

2
Hanan 24 may. 2011 a las 15:19

2 respuestas

Estoy usando 2.7.1 en Win 7.

Si desea invocar programas de Python solo con la extensión de archivo, debe verificar las asociaciones de tipo de archivo y los parámetros de la línea de comandos. He tenido problemas al instalar / reinstalar varias versiones de Python en Windows.

C:\dv>assoc .py
.py=Python.File

C:\dv>ftype Python.File
Python.File="C:\Python27\python.exe" "%1" %*

Esta página de TechNet puede proporcionar algunos antecedentes más detallados.

http://technet.microsoft.com/en-us/library/bb490912.aspx

5
T.P. 24 may. 2011 a las 11:45

Sé que esto no responde a su pregunta, pero python py_script.py es la forma estándar de ejecutar scripts de Python.

0
Sam Magura 24 may. 2011 a las 11:30