2017-02-01 1 views
1

В Windows 10 у меня установлены как Python3.5, так и Python2.7, и вам нужно сохранить оба. Мой скрипт написан для Python3.5. Если я запускаю скрипт с префиксом «python» или «py», он запускается без каких-либо проблем. Однако, когда я вызываю его напрямую, он не работает с ошибкой, аналогичной конфликту версии python:Windows 10 не запускает мой скрипт python с правильной версией python, несмотря на правильную ассоциацию файлов и пути.

Файл «C: \ Users \ user \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site.py», строка 176 файл = sys.stderr) ^ SyntaxError: неверный синтаксис

В моей командной строке набираю

>python script.py 

или

>py script.py 

Это работает, но если я просто запустил скрипт либо с ./script.py, либо просто с script.py (поскольку сценарий находится на моем пути), он терпит неудачу с упомянутым выше конфликтом.

мой путь, PYTHONHOME и PYTHONPATH указывают на 3,5

>echo %PATH%  
C:\Users\user\AppData\Local\Programs\Python\Python35;C:\Users\user\AppData\Local\Programs\Python\Python35\Scripts; 

>echo %PYTHONPATH% 
C:\Users\user\AppData\Local\Programs\Python\Python35\lib 

>echo %PYTHONHOME% 
C:\Users\user\AppData\Local\Programs\Python\Python35 

Мой питон файл ассоциации устанавливается на ру пусковая, который работает правильно, если я добавляю ру в начале моего пути.

>assoc .py 

.py=Python.File 

>ftype Python.File 

Python.File="C:\WINDOWS\py.exe" "%L" %* 

Мой пй и питон оба имеют правильные версии для тех, называемых на моем пути:

>py --version 

Python 3.5.3 

>python --version 

Python 3.5.3 

который указывает питона к правильной версии тоже.

>which python 

/cygdrive/c/Users/user/AppData/Local/Programs/Python/Python35/python 

Единственное, что я мог думать только о том, что Cygwin или MSDOS оболочки имеют свой собственный интерпретатор питона, который они используют, что мешает, но я не могу найти версию питона в любом каталоге.

Должна быть какая-то другая ассоциация файлов, которая переопределяет это место в Windows 10, о котором я не знаю. Unix shebang решила бы все это, но Windows просто раздражает. У кого есть подсказки?

+0

'assoc .py' иногда ненадежен. Проверьте в реестре напрямую. –

+0

Получить Проводник Процесса из SysInternals (бесплатно) и посмотреть, какие экземпляры py.exe или python.exe загружаются, когда он терпит неудачу. (Также Linux раздражает, если вы привыкли к Windows и т. Д.). –

+0

@ Jean-FrançoisFabre, вы были верны в своем предположении, что партнер был неправильным. Я перекопал в реестр и обнаружил какую-то странную среду IDE, которую кто-то установил, которая зашла в «edit with python27» в реестр. По какой-то причине это заменило реальную рупочку. Спасибо за вашу помощь! – JLindros

ответ

1

РЕШЕННЫЙ! неверно. В regedit я нашел еще один ключ, добавленный IDE, который добавил команду для редактирования с помощью собственной версии python27. Это как-то превалировало над реальным питоном. После удаления этого ключа и сброса добавочного расширения Windows .py он работал правильно.

Благодаря предложению от Jean-FrançoisFabre.