Установка поддержки Python в Visual Studio
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Поддержка Python доступна только в Visual Studio для Windows. В Mac и Linux поддержка Python доступна через Visual Studio Code.
Скачивание & рабочей нагрузки Python
- Скачайте и запустите последнюю версию Visual Studio Installer для Windows. Поддержка Python доступна в выпуске 15.2 и выше. Если вы уже установили Visual Studio, откройте этот продукт и запустите установщик, выбрав Сервис>Получить средства и компоненты.
Совет Выпуск Community предназначен для индивидуальных разработчиков, использования при аудиторном обучении и в научных исследованиях, а также разработки решений с открытым кодом. Если программу планируется использовать в других целях, установите Visual Studio Professional или Visual Studio Enterprise.
Установщик предоставляет список рабочих нагрузок, которые представляют собой группы связанных параметров для конкретных областей разработки. Для Python выберите рабочую нагрузку Разработка на Python и нажмите Установить. 
| Параметры установки Python | Description |
|---|---|
| Дистрибутивы Python | Выберите любое сочетание доступных дистрибутивов 32- и 64-разрядных версий Python 2, Python 3, Miniconda, Anaconda2 и Anaconda3, с которыми вы планируете работать. Каждый дистрибутив включает в себя интерпретатор, среду выполнения и библиотеки. В частности, Anaconda — это открытая платформа обработки и анализа данных, которая включает в себя множество предварительно установленных пакетов. Visual Studio автоматически определяет существующие установки Python. См. Окно «Окружения Python». Кроме того, если доступна более новая версия Python, чем показанная в установщике, то вы можете установить эту версию отдельно, и Visual Studio обнаружит ее. |
| Поддержка шаблонов Cookiecutter | Устанавливает графический пользовательский интерфейс Cookiecutter для поиска шаблонов, ввода их параметров и создания проектов и файлов. См. раздел Использование расширения Cookiecutter. |
| Поддержка веб-приложений Python | Устанавливает средства для разработки веб-приложений, включая поддержку редактирования кода HTML, CSS и JavaScript, а также шаблоны проектов на основе платформ Bottle, Flask и Django. См. статью Шаблоны веб-проектов Python. |
| Встроенные средства разработки Python | Устанавливает компилятор C++ и другие компоненты, необходимые для разработки собственных расширений для Python. См. статью Создание расширения C++ для Python. Чтобы обеспечить полную поддержку С++, установите рабочую нагрузку Разработка классических приложений на C++. |
По умолчанию рабочая нагрузка Python устанавливается для всех пользователей на компьютере:
*%ProgramFiles%\Microsoft Visual Studio\\\\Common7\IDE\Extensions\Microsoft\Python*
где
*%ProgramFiles(x86)%\Microsoft Visual Studio\\\\Common7\IDE\Extensions\Microsoft\Python*
где
Проверка установки
Чтобы быстро протестировать поддержку Python, выполните следующие действия.
- Запустите Visual Studio.
- Нажмите клавиши ALT+, чтобы открыть интерактивное окно Python и ввести 2+2 его. Если вы не увидите результат 4, проверьте выполненные действия.


Следующие шаги
- Шаг 1. Создание проекта Python
- Определение существующего интерпретатора Python вручную
Как сделать установщик python приложения, который создает иконку на рабочем столе?
У меня уже есть откомпилированное питон приложение но мне нужно сделать под него установщик.
Для создания установщика я использовал скрипт NSIS, pynsist и fbs, но последние два используют NSIS и предусматривают только установку программных файлов в папку, заданную пользователем.
В принципе, нет проблемы в том что бы сделать NSIS установщик так, что бы он установил моё приложение в Program Files, но я хочу сделать ещё и иконку на рабочем столе.
Есть ли способ это сделать через тот же NSIS или через скрипт pynsist и как именно?
Заранее спасибо.
- Вопрос задан более трёх лет назад
- 3302 просмотра
Можно ли создать установщик для python программы?
Можно ли сделать готовую программу с установщиком и если можно какие есть инструменты для создания установщика?
Отслеживать
задан 4 ноя 2019 в 15:45
657 8 8 серебряных знаков 26 26 бронзовых знаков
Компиляция не имеет никакого отношения к запуску без установки python. Даже скомпилированные на C++ программы требуют устанавливать стандартную библиотеку и какой-нибудь vcredist правильной версии.
4 ноя 2019 в 15:51
Для сброки установщика со встроенным питоном можно использовать какой-нибудь pyinstaller, но он тоже не имеет к компиляции никакого отношения.
4 ноя 2019 в 15:53
nuitka, pyinstaller, py2exe
4 ноя 2019 в 15:58
cx_freeze ещё есть
4 ноя 2019 в 22:36
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Если нужен именно установщик под Windows аля setup.exe то сначала pyinstaller для генерации всех нативных dll и exe , а затем nsis для создания установщика. В результате получится setup.exe с вашей программой, который при нужных настройках установит программу в нужный каталог, создаст ключи в реестре, сделает ярлыки, создаст uninstall.exe и много чего еще.
Отслеживать
user399117
ответ дан 13 ноя 2019 в 8:16
Константин Рыбаков Константин Рыбаков
512 2 2 серебряных знака 10 10 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Python
После того, как ваша программа готова к релизу, вы вероятно хотите упаковать ее должным образом, прежде чем распространять. Если он состоит всего из одного файла .py, то это не такая уж и проблема, но если вы имеете дело с не программистами, даже помещая простую библиотеку Python в нужном месте, или изменение PYTHONPATH может быть больше того, что они ожидали. Пользователи обычно хотят просто двумя щелчками установить программу, используя установщик, и затем пользоваться программой.
В последнее время, Python программисты также привыкли к подобным удобствам, хотя и с немного более низкого уровня интерфейса. Инструментарий Distutils для распространения пакетов позволяет легко писать сценарии установки в Python. Вы можете использовать эти скрипты для создания файлов архива для релиза, который программист(пользователь) затем может использовать для компиляции или инсталяции ваших бинарников.
В этой главе я остановлюсь на Distutils, поскольку это важный инструмент в инструментарии программиста. Distutils выходит за рамки установки только скриптовых библиотек питона: вы можете создавать простые Windows установщики, и с расширением py2exe вы можете создать автономные исполняемые программы для Windows.
И если вы хотите самоустанавливающийся архив для ваших исполняемых файлов, я приведу несколько примеров для этого.
Distutils Основы
Distutils тщательно документирована в двух документах, «Distributing Python Modules» и «Installing Python Modules», оба доступны из Python Library Reference (http://python.org/doc/lib/module-distutils.html). Вы можете использовать Distutils делать всякие полезные вещи, написав сценарий так просто, как этот:
from distutils.core import setup
setup(name=’Hello’,
version=’1.0′,
description=’A simple example’,
author=’Magnus Lie Hetland’,
py_modules=[‘hello’])
Заметка. Дополнительные значения, заданные здесь, используются для нескольких вещей. Ключевые слова name и version, используются для именования архивных файлов, а также автора и описание, в конечном итоге в файле под названием PKG-INFO в любых архивах, которые вы создаете.
Вы действительно не должны писать всю эту информацию в функции setup (вы на самом деле не обязаны писать вообще что-либо), и вы конечно, можете указать больше (например, author_email или URL ). Имена должны быть понятны. В следующих разделах, вы увидите, как вы можете использовать этот простой сценарий.
Базовая установка
Назовите ваш скрипт setup.py (это универсальное соглашение для сценариев установки Distutils), и убедитесь, что у вас есть простой модуль под названием hello.py в том же каталоге.
Внимание. Сценарий установки будет создавать новые файлы и подкаталоги в текущем каталоге, когда вы запустите его, так что вы должны, вероятно, экспериментировать с ним в свежем каталоге, чтобы избежать перезаписи старых файлов.
Теперь запустите скрипт, вот так:
Вы должны получить примерно такой ответ:
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] . ]
or: setup.py —help [cmd1 cmd2 . ]
or: setup.py —help-commands
or: setup.py cmd —help
error: no commands supplied
Как вы можете видеть, вы можете получить более подробную информацию, используя —help или —help-команда. Попробуйте использовать команду сборки, просто чтобы увидеть Distutils в действии:
python setup.py build
Теперь вы должны видеть вывод, примерно как тут:
running build
running build_py
creating build
creating build/lib
copying hello.py -> build/lib
Distutils создал папку с именем build, с другой подпапкой с именем lib, и положил копию hello.py в build/lib. Подкаталог build своего рода рабочая область, где Distutils собирает пакет(и компилирует библиотеки расширения). Вам не нужно запускать команду build, когда вы устанавливаете—оно запустится автоматом, когда вы пишите команду install.
Говоря о котором. давайте попробуем установить модуль:
python setup.py instal
Внимание. Это скопирует модуль hello.py в какую-нибудь папку в PYTHONPATH . Это не представляет опасность, но если вы не хотите засорять вашу систему, вы можете удалить его позже; сделайте отметку о том, где он находится в качестве вывода setup.py. На момент написания статьи нет стандартной команды для удаления модуля, поэтому придется сделать это вручную.
Теперь вы должны видеть вывод, примерно как тут:
running install
running build
running build_py
running install_lib
copying build/lib/hello.py -> /path/to/python/lib/python2.4/site-packages
byte-compiling /path/to/python/lib/python2.4/site-packages/hello.py to hello.pyc
Примечание. Если вы используете Python, который вы не ставили для себя и у вас нет нужных прав, то вы не сможете установить модуль как здесь показано, потому что у вас нет прав на запись в этой директории.
Это стандартный механизм, используемый для установки модулей Python, пакетов и расширений. Все, что вам нужно сделать, это обеспечить небольшой скрипт установки.
В примере, я использовал только директиву py_modules от Distutils; если вы хотите установить пакет, вы можете использовать пакеты директивы аналогичным способом(просто перечислив имена пакетов).Есть много других вариантов, которые вы можете установить (некоторые из которых рассматриваются в разделе «Компиляция расширений» далее в этой главе). Вы также можете создать файлы конфигурации для Distutils, чтобы установить различные свойства (см. раздел «Distutils Configuration Files» в “Установка Python Модулей,” http://python.org/doc/inst/config-syntax.html)
Различные опции (ключи командной строки, аргументы ключевых слов для установки, а также конфигурационные файлы Distutils) позволяют сказать, что установить и куда. Приятно то, что эти параметры могут быть использованы для более чем одной вещи. В следующем разделе показано, как обернуть модули, указанные для установки в качестве архивного файла, готовые для распространения.
Обертываем вещички
Написав скрипт setup.py, который позволит установить пользователю ваши модули, вы так же можете использовать его для себя создав файл архива. Вы можете сделать его с помощью команды sdist (“source distribution”):
python setup.py sdist
Если вы запустите это, вы увидите разный текст, включая предупреждения. Предупреждения, которые я получаю включают жалобы об отсутствии опции author_email, MANIFEST.in и README. Мы безопасно можем игнорировать их все (хотя, не стесняйтесь добавить опцию author_email к вашему скрипту setup.py, также опцию author и README или README.txt и пустой файл, называемый MANIFEST.in в текущей директории).
ЧТО ТАКОЕ MANIFEST.in?
При создании дистрибутива исходного кода создается файл с именем MANIFEST , содержащий список всех ваших файлов. Файл MANIFEST.in является шаблоном для манифеста, и используется, когда используется для установки. Вы можете использовать следующие строки
чтобы указать файлы, которые вы хотите включить, если Distutils не понял это сам по себе, используя свой setup.py скрипт (и по умолчанию включает в себя, например, README ).
После предупреждений вы должны увидеть примерно следующее:
writing manifest file ‘MANIFEST’
creating Hello-1.0
making hard links in Hello-1.0.
hard linking hello.py -> Hello-1.0
hard linking setup.py -> Hello-1.0
tar -cf dist/Hello-1.0.tar Hello-1.0
gzip -f9 dist/Hello-1.0.tar
removing ‘Hello-1.0’ (and everything under it)
Заметка. Если вы запускали команду раньше, и у вас есть файл с именем MANIFEST, вы увидите слово reading, вместо writing в самом начале. Если вы изменили структуру своего пакета и хотите упаковать его, удалив файл манифеста может быть хорошей идеей, чтобы начать все заново.
Теперь, в дополнение к подкаталогу build у вас должен быть один под названием dist . Внутри него вы найдете архив gzip или zip, названый Hello-1.0.tar.gz . Теперь он может быть распространен среди других и они могут распаковать его и установить с помощью setup.py . Если вы не хотите формат .tar.gz , вы можете настроить другой формат через опцию —formats . (Так как множественное число указывает на более одного формата, через запятую вы можете указать форматы, чтобы создать больше архивов за раз). Доступные форматы в Python 2.4 являются bztar (для bzip2 архивов), gztar(для форматов gzip ), tar (для незжатых tar файлов), zip (для zip файлов), и ztar (для сжатых tar файлов, используются команды UNIX — compress ).
Существует также команда bdist , которую вы можете использовать (помимо всего прочего), чтобы создавать простые установщики Windows и файлы RPM для Linux. Обычно используется для создания бинарных дистрибутивов, где расширения были скомпилированы для конкретной архитектуры. Смотрите следующий раздел для получения информации о компиляции расширений.) Форматы доступные для bdist (в дополнение к sdist ) это rpm (для rpm пакетов) и wininst (для исполняемых файлов Windows).
Один интересный твист в том, что вы можете собрать Windows установщик для вашего пакета вне системы Windows, при условии, что у вам не нужно компилировать другие расширения. Если у вас есть доступ к обеим, ну скажем Linux и Windows, вы можете попробовать набрать следующее
python setup.py bdist —formats=wininst
на вашей Linux машине, и затем(после игнорирования парочки предупреждений от настроек компилятора) скопировать файл dist/Hello-1.0.win32.exe в вашу Windows машину и запустить. Затем вы увидите рудиментарный мастер установки. (Вы можете отменить процесс установки модуля, если хотите.)
ИСПОЛЬЗОВАНИЕ НАСТОЯЩЕГО УСТАНОВЩИКА
Установщик, который вы получили с помощью wininst из Distutils очень примитивен. В случае если вы использовали Distutils, то вы не сможете удалить ваши пакеты. Это не может быть проблемой для вас, но иногда вы можете захотеть более профессиональный вид. Это может быть особенно актуально, если вы создаете исполняемый файл, используя py2exe (описанный далее в этой главе). В этом случае, вы можете рассмотреть некоторые стандартные установщики, таких как Inno Setup(http://jrsoftware.org/isinfo.php), которые отлично работают с исполняемыми файлами созданными с помощью py2exe, и устанавливают вашу программу как обычную программу Windows и дают вам возможность как деинсталяция.
Установщик McMillan более ориентирован на Python (поиск в сети даст вам ссылку на страницу загрузки), который может работать как альтернатива py2exe при создании исполняемых файлов. Другие варианты включают InstallShield (http://installshield.com), Wise installer (http://wise.com), Installer VISE (http://www.mindvision.com), Nullsoft Scriptable Install System (http://nsis.sf.net), Youseful Windows Installer (http://youseful.com) и Ghost Installer (http://ethalone.com).
Для более подробной информации об установщиках Windows, смотрите книгу The Definitive Guide to Windows Installer(Phil Wilson) (Apress, 2004).
Компиляция расширений
В главе 17 вы видели как писать расширения для Python. Вы наверно согласитесь, что сборка этих расширений может быть немного обременительна время от времени; к счастью для этого вы можете использовать Distutils. Вы можете посмотреть исходный код программы palindrome в гл. 17(в листинг 17-6). Предположим, что у вас есть исходный файл palindrome2.c в текущей (пустой) папке, используя скрипт setup.py может быть использован для компиляции (и установки).
from distutils.core import setup, Extension
setup(name=’palindrome’,
version=’1.0′,
ext_modules = [
Extension(‘palindrome’, [‘palindrome2.c’])
])
Если вы запустите команду install со скриптом setup.py , расширение palindrome должно автоматически скомпилироваться до его установки. Как вы можете видеть, вместо того, чтобы указать список модулей, вы даете ext_modules аргумента список экземпляров Extension. Конструктор использует имя и список похожих файлов—это место, где вы должны указать хидер файлы(.h).
Если вы предпочли просто скомпилировать расширение (записывая результат в файл palindrome.so в текущем каталоге), вы можете использовать следующую команду:
python setup.py build_ext —inplace
Теперь вы действительно получили сочненькое. Если у вас установлен SWIG (см. главу 17) вы можете использовать Distutils напрямую!
Взгляните на исходный код оригинального palindrome.c (без всего оберточного кода) в листинге 17-3. Это, конечно, намного проще, чем обновленная версия. Возможность компиляции напряму в качестве Python расширения, имея Distutils и используя SWIG — может быть очень удобным. Это реально очень просто—вы просто добавляете имя файла интерфейса (.i) (см. листинг 17-5) в список файлов в экземпляре Extension.
from distutils.core import setup, Extension
setup(name=’palindrome’,
version=’1.0′,
ext_modules = [
Extension(‘palindrome’, [‘palindrome.c’,
‘palindrome.i’])
])
Если запустить этот скрипт, используя ту же команду, как и раньше (build_ext, возможно, с помощью переключателя —inplace), вы должны разобраться с файлом palindrome.so снова, но на этот раз без необходимости писать весь код обертки самостоятельно.
Создание исполняемых программ с py2exe
py2exe расширения для Distutils (доступное с http://starship.python.net/crew/theller/py2exe) позволяет вам создавать исполняемые файлы Windows(.exe), которые могут быть полезны, и чтобы ваши пользователи не устанавливали отдельно интерпретатор Python.
Совет. После создания исполняемой программы, вы наверно захотите использовать инсталлятор, например Inno Setup или недавно упомянутую главу — “Используем реальный установщик”, ранее в этой главе, чтобы распространять программу и сопутствующие файлы, созданные py2exe.
Пакет py2exe, может быть использован для создания исполняемых файлов с графическим интерфейсом (например wx, который описан в главе 12). Давайте посмотрим на небольшой пример (используя трюк raw_input, который был в главе 1, в секции “Что на счет двойного нажатия мыши?”):
print ‘Hello, world!’
raw_input(‘Press ‘)
Опять же, начинаем с пустой папки содержащий только один файл hello.py, затем создайте setup.py как тут:
from distutils.core import setup
import py2exe
setup(console=[‘hello.py’])
Вы можете запустить скрипт так:
python setup.py py2exe
Это создаст консольное приложение (так называемое Hello.exe) вместе с несколькими другими файлами в поддиректории Dist. Вы можете либо запустить его из командной строки или дважды щелкнуть по нему. Более подробную информацию о том, как py2exe работает и возможность использовать его в более сложных способах, можно найти на веб-сайте py2exe (http://starship.python.net/crew/theller/py2exe).
Быстрое Резюме
И наконец, теперь вы знаете как создать блестящие, профессионально выглядящие программы с графическим интерфейсом или как автоматизировать генерацию драгоценных файлов .tar.gz. Вот краткое изложение охваченных тем:
Distutils. Позволяет вам писать скрипты установщики, обычно называемые setup.py, которые позволяют устанавливать модули, пакеты и расширения и которые позволяют создавать простые инсталяторы и архивы для Windows.
Команды Distutils. Вы можете запустить ваш setup.py несколькими командами, такими как build, build_ext, install, sdist и bdist.
Установщики. Очень много разных генераторов инсталлеров и вы можете использовать большинство из них для установки ваших Python программ, делая процесс легким для ваших пользователей.
Компиляция расширений. Вы можете использовать Distutils, чтобы ваши C расширения компилировались автоматически, Distutils автоматически найдет установленный Python и выяснит какой использовать компилятор. Вы так же можете использовать SWIG автоматически.
py2exe. Расширение py2exe к Distutils может быть использован для создания исполняемых двоичных файлов из ваших программ Python. Наряду с парой дополнительных файлов (которые могут быть легко установлены с инсталлятором), эти EXE-файлы можно запустить без установки интерпретатора Python.
Что дальше?
Это все, для технического материала-разбирайтесь. В следующей главе вы получите методологию и философию, и затем пойдут проекты. Наслаждайтесь!