Форум сайта python.su
0
Работаю в вндовс, но, думаю, в линукс так же. На пайтон начал недавно (хоть и зареган здесь давно) - до этого в делфи и билдере простенькие GUI писал.
Есть интерпретатор, есть библиотеки. Есть консоль.
Пути прописывать надо только для удобства работы в консоли? Для чего вообще существуют системные переменные? Что значит “домашняя директория”? Какую роль они играют? Какие ошибки бывают из-за них? А если несколько версия пайтона в системе стоит? Системная переменная PATH одна.
Офлайн
253
fshshshНет переменные окружения используются всеми программами а не только консольными.
Пути прописывать надо только для удобства работы в консоли?
subprocess.Popen(r"C:\windows\............................System32\notepad.exe") subprocess.Popen(r"notepad.exe")
fshshshДля централизованного управления поведением программ.
Для чего вообще существуют системные переменные?
fshshshУ компа может быть много пользователей. Когда вы меняете пользователя (ну например заходите под своим именем), в том числе и переменные окружения подстраиваются под вас (у каждого пользователя свой набор). Домашняя папка это текущая директория которая устанавливается после логина данного пользователя. Это в первом приближении. В эту папку ставятся те программы которые вы ставите “только для себя”.
Что значит “домашняя директория”?
fshshsh??? никаких. Если вы понимаете что делаете то никаких ошибок не бывает ни с переменными окружения ни без них.
Какие ошибки бывают из-за них?
fshshshОна не одна. Она индивидуальная для каждого пользователя, для каждого порождаемого процесса вы можете ее модифицировать.
А если несколько версия пайтона в системе стоит? Системная переменная PATH одна.
some.py
python some.py
Офлайн
857
fshshshПохоже, ты не знаешь, чем консоль отличается от командной оболочки. Консоль - это то место, где пользователь может подключаться к операционной системе. Командная оболочка - это то, что запускается в консоли и распознаёт язык команд для самой себя и для операционной системы.
Есть интерпретатор, есть библиотеки. Есть консоль.
Пути прописывать надо только для удобства работы в консоли?
fshshshПеременные окружения - это пары, которые помнит командная оболочка между вызовами программ.
Для чего вообще существуют системные переменные? Что значит “домашняя директория”? Какую роль они играют?
[guest@localhost ~]$ head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[guest@localhost ~]$
[guest@localhost ~]$ s1=/etc/passwd
[guest@localhost ~]$ s2=3
[guest@localhost ~]$
[guest@localhost ~]$ head -$s2 $s1
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[guest@localhost ~]$
[guest@localhost ~]$ s1=string1
[guest@localhost ~]$ s2=string2
[guest@localhost ~]$
[guest@localhost ~]$ echo $s1 $s2
string1 string2
[guest@localhost ~]$
Отредактировано py.user.next (Авг. 12, 2016 02:41:53)
Офлайн
0
py.user.nextА каков алгоритм системы по поиску нужной записи? Например, в коде либо в командной оболочке прописал вызов того же “notepad.exe”. Проверяются HOME, PATH в переменных среды пользователя, затем в системных переменных? А название переменной имеет значение? С андроид студио была такая штука при настройке: вручную нужно было создавать отдельную переменную среды со своим названием.
HOME и PATH - это точно такие же переменные, просто они записаны большими буквами. Вообще, если переменная записана большими буквами, значит она используется какими-то программами (служебная переменная)
doza_andА если 2 версии под одним пользователем? С virtualenv разобрался. Сначала поставил пайтон 3.5, потом pip install virtualenv. Теперь буду только в виртуалках работать, как добропорядочный разработчик.
shshsh
А если несколько версия пайтона в системе стоит? Системная переменная PATH одна.
Она не одна. Она индивидуальная для каждого пользователя, для каждого порождаемого процесса вы можете ее модифицировать.
Отредактировано fshshsh (Авг. 15, 2016 10:01:45)
Офлайн
857
fshshshЕсли записал вызов какой-то программы, то существует правило.
Например, в коде либо в командной оболочке прописал вызов того же “notepad.exe”. Проверяются HOME, PATH в переменных среды пользователя, затем в системных переменных?
Отредактировано py.user.next (Авг. 15, 2016 14:56:04)
Офлайн
0
py.user.nextНа винде учетка кириллицей. При установке 3.5.2 он по умолчанию туда предложил поставиться, я выбрал корень С:\ - читал, что у разных программ могут быть глюки из-за кириллицы в пути. Возможен такой трюк: моя домашняя директория, получается, имеет кириллицу в названии, поэтому создать системную переменную HOME и прописать там другой путь, в котором кириллицы нет? Если путь к домашней папке хранится только в системных переменных.. Хотя HOME у меня нигде нет, а инсталлятор пайтона все равно нашел мою домашнюю папку. Видимо, инфа о домашнем каталоге еще где-то хранится. В винде знаю еще одно глобальное хранилище инфы - реестр.
Часто программы сохраняют какие-то свои данные в каталоге пользователя, поэтому им надо знать, в какой каталог сохранять.
Отредактировано fshshsh (Авг. 17, 2016 09:39:57)
Офлайн
88
fshshshHOME к домашней папке отношения не имеет.
Хотя HOME у меня нигде нет, а инсталлятор пайтона все равно нашел мою домашнюю папку. Видимо, инфа о домашнем каталоге еще где-то хранится.
C:\>echo %homepath%
\Users\user
C:\>echo %userprofile%
C:\Users\user
C:\>
Офлайн
857
fshshshЭто в лине
Хотя HOME у меня нигде нет
[guest@localhost ~]$ echo $HOME
/home/guest
[guest@localhost ~]$
Отредактировано py.user.next (Авг. 17, 2016 10:25:58)
Офлайн