- How do I set default Python in Windows
- 2 Answers 2
- Переменные окружения для Python проектов
- Переменные окружения для Python проектов
- Конфигурационные файлы
- Переменные окружения
- Библиотека python-dotenv
- Утилита direnv
- How Should I Set Default Python Version In Windows?
- 14 Answers 14
- Как добавить Python в переменную Windows PATH
- 2 min
- Зачем Добавлять Python В Windows PATH?
- Как Вручную Добавить Python В ПУТЬ Windows
- Найдите Путь Установки Python На Вашем ПК
- Далее: Добавить Python В PATH В Пользовательских Переменных
- Добавление Python В PATH С Помощью Параметра Системных Переменных
- Добавить Python В Windows PATH Автоматически
- Подтвердите, Что Python Добавлен В Windows PATH
- Is there a portable way to get the current username in Python?
- 13 Answers 13
How do I set default Python in Windows
I have searched many answers on StackOverflow, but I don’t seem to find exactly what I want. I have just installed Python 3.7 and when I run the command C:\Users\Dell>python I get this:
I know it has something to do with Anaconda. But, I don’t know exactly what’s wrong.
Question
I expected to see something like Python 3.7.0 . Can someone please tell me where am I going wrong and how should I change this to what I want? What I should do to get Python 3.7 by default?
2 Answers 2
The answer is: Don’t run python . Run py , the Python launcher for Windows. By default, it runs the latest installed version of Python. If you want a specific version, you can follow it with a switch, e.g. py -2 for latest Python 2, py -3.6 for 3.6, etc.
Yes, you could go mucking about with your PATH environment variable settings to try putting the Python 3.7 install folder ahead of 3.6, but then you just have the same problem again a few months from now when you install 3.8. The launcher was created precisely because of the difficulty of managing side-by-side Python installations on Windows, and solves all of these problems seamlessly (plus, it’s four fewer characters to type if all you want is the latest installed version!).
Note that for consistency, you basically never want to launch other utilities by name, instead using the py launcher and the -m switch to make sure you’re launching the tool associated with the version you expect. So for example, instead of running pip . args. , run py -mpip . args. , which ensures you run the pip corresponding to the Python launcher’s default Python version.
Переменные окружения для Python проектов
Переменные окружения для Python проектов
При разработки web-приложения или бота мы часто имеем дело с какой-либо секретной информацией, различными токенами и паролями (API-ключами, секретами веб-форм). «Хардкодить» эту информацию, а тем более сохранять в публично доступной системе контроля версий это очень плохая идея.
Конфигурационные файлы
Самый простой путь решения данной проблемы, это создание отдельного конфигурационного файла со всей чувствительной информацией и добавление его в .gitignore . Минус такого подхода в том, что в гит нужно держать ещё и шаблон конфигурационного файла и не забывать его периодически обновлять.
Переменные окружения
Более продвинутый подход, это использование переменных окружения. Переменные окружения это именованные переменные, содержащие текстовую информацию, которую могут использовать запускаемые программы. Например, чтобы запустить flask-приложение, вначале нужно указать в переменной окружения FLASK_APP имя нашего приложения:
С помощью переменных окружения можно получать различные параметры приложение и секретные ключи:
Библиотека python-dotenv
Чтобы не задавать каждый раз вручную переменные окружения при новом запуске терминала, можно воспользоваться пакетом python-dotenv. Он позволяет загружать переменные окружения из файла .env в корневом каталоге приложения.
Устанавливаем пакет:
Теперь можно создать файл .env со всеми переменными среды, которые необходимы вашему приложению. Важно, добавьте .env -файл в .gitignore , не храните его в системе контроля версий.
Этот .env-файл можно использовать для всех переменных конфигурации, но его нельзя использовать для переменных среды FLASK_APP и FLASK_DEBUG , так как они необходимы уже в процессе начальной загрузки приложения.
Утилита direnv
Переменные среды могут быть автоматически загружены при входе в папку с проектом, это особенно удобно при работе с несколькими проектами одновременно. Сделать это позволяет утилита direnv. Direnv — это менеджер переменных среды для терминала, поддерживает bash, zsh, tcsh и др. оболочки. Позволяет автоматически загружать и выгружать переменные среды в зависимости от вашего текущего каталога. Это позволяет иметь переменные среды, специфичные для каждого проекта. Перед каждым приглашением проверяется наличие файла .envrc в текущем и родительском каталогах. Если файл существует, он загружается в подшаблон bash, и все экспортированные переменные затем захватываются direnv, а затем становятся доступными для оболочки.
Далее необходимо внести изменения для настройки нашей оболочки, для bash необходимо в конец файла
/.bashrc добавить следующее и перезапустить консоль:
How Should I Set Default Python Version In Windows?
I installed Python 2.6 and Python 3.1 on Windows 7 and set environment variable: path = d:\python2.6 .
When I run python in cmd , it displays the python version 2.6, which is what I want!
But, when I wrote a script in a bat file and ran it, the displayed python version was 3.1.
What’s going on here?
14 Answers 14
This is if you have both the versions installed.
Go to This PC -> Right-click -> Click on Properties -> Advanced System Settings.
You will see the System Properties . From here navigate to the «Advanced» Tab -> Click on Environment Variables .
You will see a top half for the user variables and the bottom half for System variables .
Check the System Variables and double-click on the Path (to edit the Path).
Check for the path of Python(which you wish to run i.e. Python 2.x or 3.x) and move it to the top of the Path list.
Restart the Command Prompt, and now when you check the version of Python, it should correctly display the required version.
The Python installer installs Python Launcher for Windows. This program ( py.exe ) is associated with the Python file extensions and looks for a «shebang» comment to specify the python version to run. This allows many versions of Python to co-exist and allows Python scripts to explicitly specify which version to use, if desired. If it is not specified, the default is to use the latest Python version for the current architecture (x86 or x64). This default can be customized through a py.ini file or PY_PYTHON environment variable. See the docs for more details.
Newer versions of Python update the launcher. The latest version has a py -0 option to list the installed Pythons and indicate the current default.
Here’s how to check if the launcher is registered correctly from the console:
Above, .py files are associated with the Python.File type. The command line for Python.File is the Python Launcher, which is installed in the Windows directory since it is always in the PATH.
For the association to work, run scripts from the command line with script.py , not «python script.py», otherwise python will be run instead of py . If fact it’s best to remove Python directories from the PATH, so «python» won’t run anything and enforce using py .
py.exe can also be run with switches to force a Python version:
Additionally, add .py;.pyw;.pyc;.pyo to the PATHEXT environment variable and then the command line can just be script with no extension.
Как добавить Python в переменную Windows PATH
2 min
Запуск Python с терминала зачастую неизбежен. Однако, если вы впервые установили Python в Windows 10, запуск его через Терминал Windows возможен только в том случае, если он добавлен в переменную среды Windows PATH.
Это может показаться сложным, но бояться нечего. Чтобы помочь вам преодолеть повороты, связанные с добавлением Python в PATH Windows после его установки, давайте рассмотрим варианты и несколько необходимых шагов.
Зачем Добавлять Python В Windows PATH?
Если вам не удалось добавить Python в PATH в вашей ОС Windows, вы не сможете запустить интерпретатор Python, запустить виртуальную среду программирования или выполнить такие команды, как pip install, из терминала.
Мы исследуем лучшие способы создания виртуальных сред Python и управления ими.
Это потому, что, когда вы запускаете любую программу, отличную от программы по умолчанию, из командной строки, машина ищет исполняемый файл в текущей папке или в ПУТИ Windows.
Если его нет в переменной PATH, терминал возвращает ошибку «команда не найдена». Добавление в PATH – это мощный инструмент, даже если вы выполняете команду из созданного или пакетного файла по умолчанию , добавление родительского исполняемого файла в переменную PATH также делает его доступным для вызова из терминала.
Как Вручную Добавить Python В ПУТЬ Windows
Во-первых, если вы не установили Python на свой компьютер, перейдите на веб- сайт python.org, чтобы загрузить и установить предпочитаемую версию.
После успешной установки Python на ваш компьютер проверьте, не добавлен ли он в PATH Windows. Откройте свой терминал и введите python , затем нажмите клавишу Enter . Команда может вернуть ошибку, в которой говорится, что «python не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл», что означает, что Python еще не добавлен в переменную PATH вашего компьютера.
Чтобы запускать программы Python из командной строки, выполните шаги, выделенные ниже.
Найдите Путь Установки Python На Вашем ПК
Чтобы добавить Python в ваш Windows PATH, вам нужно получить путь его установки. Для этого откройте панель поиска Windows и введите python.exe (не нажимайте клавишу Enter ). Затем щелкните правой кнопкой мыши Python.exe, который появляется в появившемся меню, и выберите опцию Открыть расположение файла .
В открывшихся окнах проводника щелкните длинную панель каталогов слева от строки поиска. Выделите и скопируйте весь текст пути в буфер обмена с помощью Ctrl + c . Затем перейдите к следующим шагам ниже.
Далее: Добавить Python В PATH В Пользовательских Переменных
Чтобы добавить Python в PATH в пользовательских переменных , щелкните правой кнопкой мыши « Этот компьютер» и выберите « Свойства» . Оказавшись в меню свойств, нажмите на опцию Advanced system settings . В следующем окне выберите вкладку Advanced и выберите Environment Variables .
Environment Variables меню состоит из двух отдельных частей: верхняя часть называется Пользовательские переменные , а нижняя часть имени системных переменных . Однако в этом случае мы сосредоточимся на пользовательских переменных .
В меню пользовательских переменных найдите переменную с именем Path . Затем вставьте путь, который вы скопировали ранее, в параметр «Значение переменной», используя Ctrl + v, и нажмите « ОК» .
Однако, если вы не можете найти эту переменную, вам может потребоваться ее создать. Для этого нажмите New . Затем в форме имени переменной введите путь и вставьте свой путь Python в поле значения переменной .
Вернитесь в папку пути установки Python и дважды щелкните Scripts, чтобы открыть этот каталог. Затем скопируйте его путь из панели пути в верхней части окон (помимо панели поиска), как вы это делали ранее для пути установки Python.
Скопировав путь к скриптам, вернитесь к переменным среды . Затем выберите переменную Path и нажмите Edit . Введите точку с запятой после пути к исполняемому файлу Python и вставьте после него путь скриптов, который вы только что скопировали. Затем нажмите ОК .
Добавление Python В PATH С Помощью Параметра Системных Переменных
Вы также можете добавить Python в системную переменную PATH. Хотя это всего лишь альтернатива, и в ней нет необходимости, если вы уже добавили ее в переменные Users .
Чтобы использовать параметр « Системные переменные» , выполните шаги, выделенные выше, для копирования пути Python и его сценария. Затем вернитесь в переменные среды . Затем в сегменте системных переменных найдите переменную с именем Path . Щелкните эту переменную и щелкните Изменить .
В следующем появившемся окне нажмите New и вставьте путь, который вы скопировали ранее, в открывшееся пространство. Повторите этот процесс и для пути скриптов . Затем нажмите ОК и закройте окно переменных среды .
Добавить Python В Windows PATH Автоматически
Вы также можете автоматически добавить Python в PATH Windows во время установки. Хотя этот метод работает не во всех случаях, вы все равно можете попробовать.
Для этого щелкните свой установочный файл и установите флажок « Добавить Python 3.7 в PATH» . Номер версии будет меняться при установке разных версий Python.
Установка этого флажка автоматически добавляет Python в ваш путь к Windows. Это означает, что вы можете запускать команды Python через командную строку сразу после установки.
Подтвердите, Что Python Добавлен В Windows PATH
Чтобы узнать, добавлен ли Python в PATH Windows, откройте терминал и введите python –version , затем нажмите клавишу Enter . Если команда возвращает текущую установленную версию Python, это означает, что вы успешно добавили ее в Windows PATH.
Однако, чтобы проверить, добавили ли вы каталог Scripts в Windows PATH, попробуйте запустить пакет установки pip на терминале, заменив «package» на предпочитаемую вами библиотеку. Если вы установили Python 2.7.9 и выше, команда устанавливает названный пакет, указывая, что вы также успешно добавили скрипты Python в путь.
Помимо добавления Python в PATH Windows, вы можете добавить текстовые редакторы, интегрированные среды разработки (IDE), Git, Node, Anaconda и многие другие программы.
Например, управлять проектом с помощью Sublime Text легко, когда вы открываете терминал в каталоге папки вашего проекта и запускаете subl. команда. Это откроет редактор в вашей текущей папке и отобразит его на боковой панели, еще один экономящий время ярлык для продуктивной работы с Sublime Text .
Is there a portable way to get the current username in Python?
Is there a portable way to get the current user’s username in Python (i.e., one that works under both Linux and Windows, at least). It would work like os.getuid :
I googled around and was surprised not to find a definitive answer (although perhaps I was just googling poorly). The pwd module provides a relatively easy way to achieve this under, say, Linux, but it is not present on Windows. Some of the search results suggested that getting the username under Windows can be complicated in certain circumstances (e.g., running as a Windows service), although I haven’t verified that.
13 Answers 13
Look at getpass module
Availability: Unix, Windows
p.s. Per comment below «this function looks at the values of various environment variables to determine the user name. Therefore, this function should not be relied on for access control purposes (or possibly any other purpose, since it allows any user to impersonate any other).«
You best bet would be to combine os.getuid() with pwd.getpwuid() :
Refer to the pwd docs for more details:
You can also use:
You can probably use:
But it’s not going to be safe because environment variables can be changed.
These might work. I don’t know how they behave when running as a service. They aren’t portable, but that’s what os.name and if statements are for.
If you are needing this to get user’s home dir, below could be considered as portable (win32 and linux at least), part of a standard library.
Also you could parse such string to get only last path component (ie. user name).
To me using os module looks the best for portability: Works best on both Linux and Windows.
No need of installing any modules or extensions.
Combined pwd and getpass approach, based on other answers:
For UNIX, at least, this works.
edit: I just looked it up and this works on Windows and UNIX:
On UNIX it returns your username, but on Windows, it returns your user’s group, slash, your username.
UNIX returns: «username»
Windows returns: «domain/username»
It’s interesting, but probably not ideal unless you are doing something in the terminal anyway. in which case you would probably be using os.system to begin with. For example, a while ago I needed to add my user to a group, so I did (this is in Linux, mind you)
I feel like that is easier to read and you don’t have to import pwd or getpass.
I also feel like having «domain/user» could be helpful in certain applications in Windows.