2013-04-09 2 views
35

Есть ли способ установить python 3 поверх установки python 2 без разрушения чего-либо? Основная проблема заключается в том, что у меня есть код, который работает под «python xxxxx.py abc123». Есть ли способ изменить python 3 как «python3 xxxx.py abc123»? Та же команда python является конфликтКак запустить python 2 и 3 в Windows 7?

+0

Это, безусловно, возможно, так как «установка python» - это просто извлечение связки папок. Просто запустите установщиков, и у вас будут папки python26 и python32 на вашем диске C.Что касается команды, вам понадобится некоторое время с переменными окружения каждый раз, когда вы хотите использовать другую, поэтому, возможно, нужен короткий скрипт bash для изменения PATH? –

+0

http://j.mp/ZfKVrb, может быть, это поможет – dnelson

+0

Нет необходимости играть в Python 3.3 на. – pepr

ответ

80

Существует лучший способ сосуществования/запуска Python 2 и Python 3 в Windows. Python 3.3 представил пусковую установку Python для Windows (см. http://www.python.org/dev/peps/pep-0397/).

После установки Python 3.3, py.exe и pyw.exe копируются в c:\Windows каталог и ассоциации устанавливаются для расширения .py так, что он использует гранатомет. По умолчанию Python 2 запускается для py script.py. py -3 script.py запускает Python 3. (Это также означает, что ни один путь для Python должен быть добавлен в окружающую среду -. C:\Windows уже находится в PATH)

Лучше всего в том, что #!python2 в сценарии вызывает lauching с помощью Python 2, #!python3 вызывает запуск скрипта через Python 3. Таким образом, вы можете использовать сценарии для обеих версий Python, и вы можете использовать их унифицированный путь - py script.py или просто щелкнув значок сценария.

Есть более подробная информация, но это в основном то, что вам нужно.

Обновление: При использовании Python запуска для Windows, вы также можете запустить скрипт Python из cmd окна, набрав > script.py (то есть без явного набрав py --the имя пусковой установки Python - перед сценарием имя) или даже путем ввода имени без расширения .py (то есть только > script).

Таким образом, все начинает напоминать Unix-способ именования скриптов (без необходимости расширения); однако при создании файла сценария вам необходимо добавить расширение .py.

(Да, это немного более грязный, чем подход Unix. Это разница между «Подумайте первый!» и «Sell первый!» подходы разработок операционки. Во всяком случае, мой для команды разработчиков Python, чтобы выжать все лучшее из Windows, выпустив пусковую установку Python для Windows.)

+7

Я не вижу никаких py.exe или pyw.exe. Но когда я запускаю Python я получаю: 'Фатальная ошибка Python: Py_Initialize: не удалось загрузить файл системного кодека Файл "C: \ python27 \ Lib \ кодировок \ __ init__.py", строка 123 поднять CodecRegistryError \ ^ SyntaxError : недопустимый синтаксис'. Это означает, что python3 пытается запустить материал python2. – CMCDragonkai

+0

На самом деле py.exe находится в C: \ Python33. Но если я попытаюсь запустить py -3, я получаю ту же ошибку, что и выше. – CMCDragonkai

+0

@CMCDragonkai: Я не могу это подтвердить. Я только что удалил все версии Python, которые у меня были на моем диске, физически удалил также C: \ PythonXX (с пакетами сайтов и т. Д.), Физически удалил также C: \ Windows \ py.exe и pyw.exe. Затем я загрузил и установил http://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi (файл py.exe не добавлен в C: \ Windows), а затем http: //www.python.org/ftp/python/3.3.2/python-3.3.2.amd64.msi - py.exe и pyw.exe добавлены в C: \ Windows. Какая версия Windows у вас есть? – pepr

6

Не уверен, если это будет соответствовать вашим потребностям, но вы должны смотреть на virtualenv: http://www.virtualenv.org/en/latest/

Это позволит вам создавать отдельные среды для Python 2 и 3 (с помощью - p). Если ваш случай использования - это то, для чего это не сработает, обновите вопрос с некоторыми дополнительными особенностями, и я уверен, что вы получите другие предложения.

2

Предполагая, что вы устанавливаете python3 в отдельный каталог, вы также можете переименовать исполняемый файл python 3 в файл python3.exe.

+1

Переименование '.exe' ломает использование' py -3', что было предложено @pepr. – Kevin

0

Вам необходимо отредактировать переменную окружения, чтобы включить путь Python 3 или Python 2.

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