2013-11-25 3 views
3

Я знаю, что это похоже на вопрос, ответивший на тысячи раз, но ни один из традиционных ответов, касающихся среды PATH, не работает.Запустите Python из Windows PowerShell

Я хочу, чтобы запустить следующее в Windows 7, в Powershell:

python mycode.py 

Однако Powershell возвращает ошибку, заявив, что python not recognized as an applet, function, application,...

Это мой путь переменные:

переменных пользователя :

PATH 
C:\Python27\Lib\site-packages\PyQt4; 
C:\Python27; 
C:\Python27\DLLs; 
C:\Python27\Scripts; 
C:\Python27\Lib\site-packages\vtk; 
C:\Python27\gnuplot\binary; 
C:\Program Files (x86)\pythonxy\SciTE-3.3.2-3; 
C:\Program Files (x86)\pythonxy\console; 
C:\MinGW32-xy\bin; 
C:\Program Files (x86)\pythonxy\swig; 
C:\Program Files (x86)\pythonxy\gettext\bin 

PATHEXT 
.PY;.PYW 

PYTHON_INCLUDE 
C:\Python27\include 

PYTHON_LIB 
C:\Python27\libs\python27.lib 

и System variabl эс:

PATH 
C:\Python27\Lib\site-packages\PyQt4; 
C:\Python27; 
C:\Python27\DLLs; 
C:\Python27\Scripts; 
C:\Python27\Lib\site-packages\vtk; 
C:\Python27\gnuplot\binary; 
C:\Program Files (x86)\pythonxy\SciTE-3.3.2-3; 
C:\Program Files (x86)\pythonxy\console; 
C:\MinGW32-xy\bin; 
C:\Program Files (x86)\pythonxy\swig; 
C:\Program Files (x86)\pythonxy\gettext\bin; 
C:\WINDOWS\system32; 
C:\WINDOWS 

Я попытался следующие:

$env:Path = $env:Path + ";C:\Python27\" 
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27", "User") 

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

Возможно, PowerShell неправильно читает переменную пути или у меня нет разрешения? Я потерян, особенно зная, что эта работа отлично работает на другой установке Windows 7. Я отмечаю, что набрав:

python.exe 

... открывает терминал Python, как ожидалось.

Edit: Ok Я попытался следующий код: test.py

# -*- coding: utf-8 -*- 
print "Hello" 
input() 

python.exe test.py 

открыть новый терминал с «Hello» в нем и ждать моего входа , но я не хочу этого, я ожидаю, нормальное поведение, с «Hello», напечатанным в PowerShell, сообщение об ошибке в PowerShell и т. д.

Edit2: Я заметил, что «Путь» переменной приведены в PowerShell по: Get-ChildItem конв

Не равно в параметрах W7 «Система -> Дополнительные параметры системы -> переменная среды» , это было только:

;C:\Python27 

Как если моя предыдущая командная строка [Environment] :: SetEnvironmentVariable ("Путь", "$ ENV: Путь; C: \ python27") просто написал в нем. Исправление этого также не решило мою проблему.

+1

Вы пробовали "python.exe yourcode.py"? Если вы скажете, что python.exe открывает pythonshell, это должно работать. – 0xAffe

+1

Попробуйте вызвать python из cmd.exe. Это скажет вам, является ли это проблемой пути (скорее всего) или что-то особенное для PowerShell. FWIW Я не знаю никаких проблем с использованием PowerShell PATH env var. –

+0

@Keith from cmd.exe Я получаю: «'python' не распознается как внутренняя или внешняя команда ...» –

ответ

0

Выполнение любого исполняемого файла с использованием Powershell (не только Python.exe) возможно с использованием нескольких подходов, но то, что сработало лучше всего, - iex.

Основные шаги, которые я следовать являются:

  • Найти путь к исполняемым
  • конструкт Командная строка
  • Выполнить iex на него. Используйте & для учета пробелов в пути к файлам.

Чтобы найти исполняемый файл, я обычно использую get-command. Это ищет ПУТЬ:

if (get-command curl.exe) { 
     $exePath = "curl.exe" 
    } 

    $Cmd = '"'+ $exePath + '"' + ' args' 
    iex "& $curlCmd" 

Надеюсь, это поможет.

+0

Спасибо, но это немного над моей головой. В чем цель этого? –

+0

Дело в том, что вы не можете набрать 'python test.py' и ожидать, что это сработает. (или вообще, 'someExe file.exe' не всегда работает в командной строке Powershell). 'iex' делает его более надежным. было ли это яснее? – Vish

0

Добавление «C \ Python27» в «System -> Advanced System settings -> Environment variable» к системным переменным решило мою проблему. Для меня это было только в пользовательских переменных.

Смежные вопросы