
Cykooz
29.04.2018
12:21:15
Наверное нет.

Zart
29.04.2018
12:21:37
>>> import sys, site
>>> sys.prefix
'C:\\Program Files (x86)\\Python 3.6'
>>> site.getsitepackages()
['C:\\Program Files (x86)\\Python 3.6', 'C:\\Program Files (x86)\\Python 3.6\\lib\\site-packages']
ты ж понимаешь что если выкинуть из сис.патха ц\пф\питон36 то это оторвёт питону нахуй яйца. не оба, а все

Cykooz
29.04.2018
12:22:00
Не разбирался - у меня просто заработало то что мне надо, т.е. изоляция от системных sitepackages
Ну и да, за два часа я не дошёл до тестирования винды

Google

Alexey
29.04.2018
12:22:51
А она тут при чём?

Cykooz
29.04.2018
12:23:16
Ну ты погляди что показал зарт - вывод под виндой

Alexey
29.04.2018
12:23:27
Это заебись всё. Я тебе прямой вопрос задал.

Zart
29.04.2018
12:23:28
вот те сайт-пакаджес каталоги добавляются на сис.патх не напрямую тупым аппендом/инсертом, а через сайт.аддсайтдир, который делает чуть-чуть больше телодвижений
во-первых он не допускает дупликатов, проверяя что аналогичный путь (через нормализацию) уже не находится в сис.патх, раз
во-вторых он обрабатывает птх файлы в оном каталоге

Cykooz
29.04.2018
12:23:38
Под ubuntu всё было норм

Alexey
29.04.2018
12:23:48
Ясн.

Zart
29.04.2018
12:23:49
не вижу причем тут платформа..

Alexey
29.04.2018
12:24:04
Ну, надо же до чего-то доебаться? :)


Zart
29.04.2018
12:24:10
в сайт модуле есть логика которая генерит сис.патх в зависимости от платформы и версии
D:\>py -2 -msite
sys.path = [
'D:\\',
'C:\\WINDOWS\\SYSTEM32\\python27.zip',
'C:\\Program Files (x86)\\Python 2.7\\DLLs',
'C:\\Program Files (x86)\\Python 2.7\\lib',
'C:\\Program Files (x86)\\Python 2.7\\lib\\plat-win',
'C:\\Program Files (x86)\\Python 2.7\\lib\\lib-tk',
'C:\\Program Files (x86)\\Python 2.7',
'C:\\Program Files (x86)\\Python 2.7\\lib\\site-packages',
]
USER_BASE: 'C:\\Users\\Zart\\AppData\\Roaming\\Python' (doesn't exist)
USER_SITE: 'C:\\Users\\Zart\\AppData\\Roaming\\Python\\Python27\\site-packages' (doesn't exist)
ENABLE_USER_SITE: True
D:\>py -3 -msite
sys.path = [
'D:\\',
'C:\\Program Files (x86)\\Python 3.6\\python36.zip',
'C:\\Program Files (x86)\\Python 3.6\\DLLs',
'C:\\Program Files (x86)\\Python 3.6\\lib',
'C:\\Program Files (x86)\\Python 3.6',
'C:\\Program Files (x86)\\Python 3.6\\lib\\site-packages',
]
USER_BASE: 'C:\\Users\\Zart\\AppData\\Roaming\\Python' (doesn't exist)
USER_SITE: 'C:\\Users\\Zart\\AppData\\Roaming\\Python\\Python36\\site-packages' (doesn't exist)
ENABLE_USER_SITE: True
дефолты у нас как видим заметно разные в разных версиях
для меня кстати новость что они ткинтер наконецто убрали из отдельного либ-тк в штатный стдлиб


Cykooz
29.04.2018
12:26:08
У меня под руками только термукс на телефоне
>> import sys, site
>>> sys.prefix
'/data/data/com.termux/files/usr'
>>> site.getsitepackages()
['/data/data/com.termux/files/usr/lib/python3.6/site-packages']

Google

Zart
29.04.2018
12:26:10
различия в python27.zip и python36.zip изза того куда стали ставить pythonXY.dll - 2.7й ставил в систем32, 3.6 теперь ставит рядом с ехе

Cykooz
29.04.2018
12:26:21
Как видишь - всё нормально

Zart
29.04.2018
12:26:34
это скорее у позикс версии так
на маке может оказаться и так и эдак, там для дарвина еще куча логики была

Cykooz
29.04.2018
12:27:02
Наверное - винду не тестил.

Alexey
29.04.2018
12:27:38
facepalm.

Zart
29.04.2018
12:27:58
так вот, зная что питон настраивает sys.prefix в зависимости от того где найдет os.py (ищет от каталога ехе и от родителя), виртуаленв и работает

Cykooz
29.04.2018
12:28:16
Судя по коду venv для py2 - он больше выбирает что бы ещё скопировать чем то, что не надо переносить в венв.

Zart
29.04.2018
12:28:18
он копирует os.py, и сует отдельную копию site.py
но чтобы это всё работало, надо чтобы питон прошел этап запуска, во время которого он импортирует допизды говна
виртуаленв и занимается копированием нужного подмножества модулей стдлиба, чтобы хватило до импорта сайт.пи
в этом главная мутность - им приходится реплицировать в виртуаленв тонну логики из разных версий питона и в зависимости от платформы/версии/реализации копировать разные куски стдлиба
можно было бы копировать тупо всё

Cykooz
29.04.2018
12:30:23
Моя задача - избавится от site-packages, а не скопировать стдлиб. Это немного обратная с venv задача

Zart
29.04.2018
12:30:31
но там попытка сэкономить место
оно изначально идёт с минимальным набором
там даже сайт не импортируется по дефолту

Cykooz
29.04.2018
12:35:02
Все мои проблемы с системным питоном заключаются именно в его site-packages, куда система пихает свои, часто устаревшие пакеты. Если помнишь, я юзаю zc.buildout, т.е. мне фиолетово на pip и его проблемы - мне надо только сделать так что бы системный site-packages не был виден изнутри запущеного питон-кода.

Zart
29.04.2018
12:35:31
венв третьего питона лишен почти всех этих проблем с копированиями. там в инишке оригинальный префикс, поэтому он штатно всё настраивает без этих бубнов. единственное что копируется - это дллки

Google

Cykooz
29.04.2018
12:36:02
Винда и мак вероятно поломают мою "идеальную" реализацию изоляции от site-packages. ?
Это я не тестировал

Zart
29.04.2018
12:36:04
билдаут решает эту проблему тем что в шибенг впиливает -s и генерит код для настройки сис.патх
без импорта сайт.пи у нас сис.патх изначально только стдлиб включать лишь должен
в теории
на практике сайт может внезапно вызваться и будет весело

Cykooz
29.04.2018
12:40:32
Я этот site планировал импортировать в самом начале скрипта, который генерит билдаут. Для того что бы вызывать из него getsitepackages(), удалять лишнее из sys.path и далее уже стандартная билдаутовская вставка путей в подчищенный sys.path.

Zart
29.04.2018
12:40:55
самое смешное что импортировав его, ты засрёшь сис.патх

Cykooz
29.04.2018
12:41:50
Да, засру - и тут же почищу (хотя бы для debian-based дистибов это работает).
Думаю запилить extension для билдаута, который будет втыкать код зачистки в скрипты.

Zart
29.04.2018
12:42:12
и я еще не впиливал как там пип с его нспкг работает..
проще до импорта сайта, сохранить копию сис.патх
и после его импорта - восстановить из копии 8)))

Cykooz
29.04.2018
12:42:48
Хм, это вариант - над будет потестить.
Хотя у меня это не прокатывает - sys.path уже содержит site-packages пути, даже без импортирования site. Видимо это ещё на этапе старта питона происходит

Zart
29.04.2018
12:50:11
там есть нюансы, да

Arsus
29.04.2018
12:58:57
Документально-приключенческая (так её позиционирует авторы) игра по мотивам гибели подлодки "Курск" выйдет на PS4, Xbox One, ПК в этом году. Трейлер: https://www.youtube.com/watch?v=58US71Idr9o

Stanislav
29.04.2018
22:41:22

Eugine
29.04.2018
23:04:23

Alexey
30.04.2018
07:25:11

Zart
30.04.2018
10:10:30
бля, дома -2 и снег

dmks
30.04.2018
10:34:27

Google

Zart
30.04.2018
10:35:29
"снег" = натуральная метель херачит

b0g3r
30.04.2018
11:25:28

Sergey
30.04.2018
11:35:32
вот до чего переход с постгреса на мускуль доводит!

Lulz
30.04.2018
15:34:19

Zart
30.04.2018
15:35:20
геепроблемы

Stanislav
30.04.2018
15:43:09

Ramiz
30.04.2018
15:52:16

Zart
30.04.2018
15:53:59

Stanislav
30.04.2018
15:55:44
щито?
Ну ты про пип и изи_инсталл?

Zart
30.04.2018
15:56:57
нет, про то что картинка очевидно про макось
и что половины проблем легко избежать выкинув полкартинки к хуям

Sergey
30.04.2018
16:02:07
https://habr.com/company/southbridge/blog/322624/

Zart
30.04.2018
16:06:56
это который из переходов
а то они уже минимум перешли один раз туда и раз обратно

Sergey
30.04.2018
16:07:31
второй

Zart
30.04.2018
16:19:36
втф...
python.org лёг?

Lulz
30.04.2018
16:22:46

Zart
30.04.2018
16:23:01
мне 503 возвращает

Lulz
30.04.2018
16:23:35
Теперь 503 выдал)

Google

Stanislav
30.04.2018
16:26:44

Маришка
30.04.2018
16:26:49
Помнится где то был сайт который показывал забанен ли айпишник, чё то типа isipblockedinrussia

Stanislav
30.04.2018
16:27:15

Маришка
30.04.2018
16:27:19
нее
не такой
там отдельно сделали
для(от) ркна

Zart
30.04.2018
16:31:45
https://blocklist.rkn.gov.ru/

Ramiz
30.04.2018
17:43:54
Ну там, я полагаю, наверняка не одна база данных используется. И переходит одного из них на мускул не особо сильный повод для срача.

Sergey
30.04.2018
17:45:30

Zart
30.04.2018
18:26:31
Если кинуть отрицательное, не вернёт положительное.
Да, но не извесно изначально, положительное число или отрицательное.
какие-то жертвы ЕГЭ, которые не понимают что -x инвертирует знак независимо от знака исходного числа

Никита
30.04.2018
18:30:13
В задачах для ЕГЭ как раз часто приходятся использовать всякие abs и min/max

Stanislav
30.04.2018
18:32:09

Zart
30.04.2018
18:32:39
самовыпилился с горя

vlade11115
30.04.2018
18:44:28