Windows не может передать аргументы скрипту Python - PullRequest
2 голосов
/ 24 мая 2011

в 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]

теперь идет из командной строки, на моей платформе winXP:

d:\path\py_script.py 1 2

приводит к

first arg is 1
second arg is 2

еще на моемПлатформа Win7, которую я получаю

no args

Если я получаю

d:\path\python py_script.py 1 2

Я получаю

first arg is 1
second arg is 2

Как я могу заставить свою среду Win7 работать так, как ожидалось?

некоторые детали:
win7 - 64-битная.
py2.6.6 на win7, py 2.6.4 на winXP.

Ответы [ 3 ]

5 голосов
/ 24 мая 2011

Я использую 2.7.1 на Win 7.

Если вы хотите вызывать программы Python только по расширению файла, вам следует проверить ассоциации типов файлов и параметры командной строки. У меня возникли проблемы при установке / переустановке нескольких версий Python в Windows.

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

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

Эта страница TechNet может предоставить более подробную информацию.

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

1 голос
/ 24 мая 2011

На основании ответа jtp.
Ну, я немного перепутал с реестром.

Вот что я думаю о шагах:

  1. делает

    assoc .py = Python.File

  2. через win explorer выберите файл .py, щелкните правой кнопкой мыши -> x64 -> откройте с помощью> перейдите к c: \ Python26 \ python.exe и установите флажок «всегда открывать с этим ..». это фактически немедленно изменяет значение reg

    HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts.py \ UserChoice
    до
    Python.File

  3. установить HKEY_CLASSES_ROOT \ Python.File \ shell \ Open \ Command в значение "C: \ Python26 \ python.exe" "% 1"% 2% 3% 4% 5% 6% 7% 8% 9

примечание: из предыдущего опыта я уверен, что со смешанными версиями все может испортиться. удаление / переустановка должна быть способом пойти. Кстати, я не хотел проходить через это, потому что со всеми пакетами, включая те, которые я собрал из исходного кода, это будет беспорядок.

0 голосов
/ 24 мая 2011

Я знаю, что это не отвечает на ваш вопрос, но python py_script.py - это стандартный способ выполнения скриптов Python.

...