Параметры командной строки Python терпят неудачу на одной учетной записи, но не на другой - PullRequest
0 голосов
/ 28 июля 2011

Я работаю на Windows Server 2008. Мы широко используем Python на нескольких серверах, и по большей части он работает хорошо.Однако, по крайней мере, на одном сервере аргументы не передаются моим сценариям Python при запуске из командной строки.Если я вхожу в систему как другой пользователь, скрипт работает как положено.Я также могу запустить сценарий в Eclipse IDE с аргументами без проблем.

Я сделаю что-то вроде этого:

myscript.py -h

или

\Python2.6\python.exe myscript.py -h

Вместоотобразить справку, она запускается с аргументами по умолчанию.

Если я правильно помню (некоторое время это было проблемой, поэтому моя память нечеткая), эта учетная запись использовалась для запуска этих сценариев без проблем.

1 Ответ

1 голос
/ 28 июля 2011

Если вы запустите скрипт Python, например ::10000

import sys
for a in sys.argv:
  print a

с равниной

showargs.py a b c

Эффективный вызов контролируется настройками реестра, которые можно проверить с помощью ftype

ftype Python.File
Python.File="C:\Python25\python.exe" "%1" %*

% * крайне важен для передачи аргументов скрипту. Если% * отсутствует,

ftype Python.File="C:\Python25\python.exe" "%1"
Python.File="C:\Python25\python.exe" "%1"

showargs.py
<no output>

скрипт не видит никаких аргументов. Этот параметр ftype не должен влиять на явные вызовы:

python showargs.py a b c
showargs.py
a
b
c

но «python» в вашей системе / в вашей IDE может вызвать «настоящий» python.exe окольным путем - таким образом, также будут затронуты настройки ftype. Так что используйте ftype для быстрой проверки и / или посмотрите спецификацию "run python script" в вашей IDE.

...