Запуск Python3 на общем компьютере с Python2? Установка и запуск конфликтов, возврат к библиотекам Py2 - PullRequest
0 голосов
/ 01 ноября 2018

Итак, я написал несколько скриптов Python3, которые я хочу запускать на общем рабочем компьютере. На этом компьютере установлен python2.7 и много запланированных 2.7 скриптов, и я должен убедиться, что они остаются нетронутыми. Поэтому я подумал, что это некая переносимая или виртуальная среда python3, которую я мог бы сохранить только для своих скриптов.

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


Что я пробовал:

1) Установка переносной версии python3 (WinPython 3.7).

Затем в файле .bat для запуска моего сценария я положил:

SET PYTHONPATH = "C:\Localdata\...\WPy-3702\python-3.7.0.amd64\Lib\site-packages"
"C:\Localdata\...\WPy-3702\python-3.7.0.amd64\python.exe" test.py

Где test.py просто:

import six
print(six.__file__)

Теперь это прекрасно работает на моем ноутбуке, возвращая каталог site-package winpython:

> C:\Localdata\...\WPy-3702\python-3.7.0.amd64\Lib\site-packages\six.py

Тем не менее, при прочих равных условиях общий компьютер возвращается к установленной библиотеке 2.7.

> C:\Program Files (x86)\Python27\lib\site-packages\six.py

Это, конечно, ломает его и кажется корнем моей проблемы. Я проверил, и есть шесть.py в папке site-пакетов winpython. Я пробовал разные версии / установки winpython без удачи. (В идеале, если бы кто-то указал на простую команду, которую я здесь пропустил, которая могла бы это исправить, это было бы здорово.)

К вашему сведению, если я запускаю python из «WinPython Command Prompt.exe», который идет в комплекте, это действительно версия 3.7, просто он не будет использовать локальные библиотеки пакетов сайтов 3.7 ...

2) Установка Anaconda3 и не добавление в PATH.

Установка завершена, но у меня остается только Anaconda Prompt в меню «Пуск» (без jupyter, spyder и т. Д.) И Anaconda Prompt, как только я пытаюсь открыть ее, появляются ошибки:

> 'C:\Users\...\anaconda3\Scripts\activate.bat' is not recognized as an 
internal or external command, operable program or batch file.

У меня есть опыт решения этой проблемы на других рабочих ПК, и решение состоит в том, чтобы удалить Python по умолчанию и переустановить Anaconda, но, как я уже говорил, я не могу коснуться текущей установки Py2, не раздражая МНОГО людей, поэтому другой тупик.

(Хотя установка каким-то образом не удалась, файлы anaconda3 все еще установлены, поэтому я попробовал тот же трюк test.py + batchfile для пакетов сайта anaconda3, но он делает то же самое).

3) Создание Venv:

Хорошо, я признаю, что я немного наивен, если я прочитаю это, хотя Почему virtualenv полагается на глобальный питон, а не на локальный, после извлечения? похоже, у меня будут те же проблемы, что и выше.

Из моего предыдущего поста Как локально запускать скрипт python в виртуальной среде на компьютере, работающем под управлением Windows, и работает ли он постоянно? Ответ на использование pyinstaller полезен для однократного отключения, но я ' У меня сейчас много сценариев, которые я хочу запускать на одном компьютере, поэтому пакет 500 МБ + для каждого сценария будет слишком громоздким.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

При использовании команды set. Любые пробелы, которые вы используете перед символом равенства, являются частью самого имени переменной. Поэтому, если вы хотите использовать эту переменную, вы должны ссылаться на нее как %myvar % с пробелом в конце.

Также не рекомендуется назначать кавычки для переменной. Однако их можно использовать для защиты специальных символов в значении переменной, а также помогает избежать пробелов в конце значения переменной.

 SET "PYTHONPATH=C:\Localdata\...\WPy-3702\python-3.7.0.amd64\Lib\site-packages"
0 голосов
/ 01 ноября 2018

Вариант 3, virtualenv - это то, с чем я бы пошел. Здорово, что вы смогли установить переменную окружения из комментария @ Declan, но я думаю, что использование virtualenv - неплохая идея, даже если у вас нет проблем с версией Python. Он поддерживает чистоту ваших глобальных сред Python, может обеспечить своего рода торговую деятельность и так далее.

Чтобы установить Python-версию нового virtualenv, вы используете флаг -p.

Несвязанное примечание: Python 2 будет объявлен устаревшим в 2020 году.

...