- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
def get_build_version():
"""Return the version of MSVC that was used to build Python.
For Python 2.3 and up, the version number is included in
sys.version. For earlier versions, assume the compiler is MSVC 6.
"""
prefix = "MSC v."
i = sys.version.find(prefix)
if i == -1:
return 6
i = i + len(prefix)
s, rest = sys.version[i:].split(" ", 1)
majorVersion = int(s[:-2]) - 6
if majorVersion >= 13:
# v13 was skipped and should be v14
majorVersion += 1
minorVersion = int(s[2:3]) / 10.0
# I don't think paths are affected by minor version in version 6
if majorVersion == 6:
minorVersion = 0
if majorVersion >= 6:
return majorVersion + minorVersion
# else we don't know what version of the compiler this is
return None
Определение версии конпелятора, которой был собран «CPython».
TEH3OPHblu_nemyx 30.05.2020 16:18 # 0
Совершенно логично, что если в штампе версии «1900», то это 14-я версия «Visual Studio» (19 - 6 = 13, но 13 пропускаем, потому что число несчастливое).
bormand 30.05.2020 18:21 # 0
Которая ещё называется 2015. Чтобы все окончательно запутать.
TEH3OPHblu_nemyx 30.05.2020 18:29 # 0
А теперь у них помимо MSVC ещё и «шланг» зачем-то есть (VC\Tools\ClangC2).
bormand 30.05.2020 18:31 # 0
Ну у них и в версии что-то типа 1920 осталось. Так что теперь вообще хер отличишь.
TEH3OPHblu_nemyx 30.05.2020 18:36 # 0
TEH3OPHblu_nemyx 30.05.2020 18:40 # 0
2015 себя подписывает как 1900.
2017 — как 1910...1919 в зависимости от минорной версии.
2019 — как 1920...1929 и т. д.
guest8 30.05.2020 18:43 # −999
TEH3OPHblu_nemyx 30.05.2020 18:49 # 0
NT 5.1: Windows XP
NT 5.2: Windows Server 2003
NT6.0: Windows Vista, Windows Server 2008 (без R, попрошу не путать)
NT6.1: Windows 7, Windows Server 2008 R2 (именно с R2, а то могут ведь напутать)
NT6.2: Windows 8, Windows Server 2012
NT6.3: Windows 8.1, Windows Server 2012 R2 (такая же фигня с буквой R)
А ещё у нас был говнокод на «Йаже», который объясняет, почему не вышла Windows 9, а сразу появилась десятка.
1024-- 31.05.2020 10:53 # 0
TEH3OPHblu_nemyx 30.05.2020 19:02 # 0
https://govnokod.ru/16791
А ещё на «йажаскрипте»:
Именно поэтому «Windows 9» так и не вышла.
guest8 30.05.2020 19:03 # −999
TEH3OPHblu_nemyx 30.05.2020 19:06 # 0
guest8 30.05.2020 19:06 # −999
TEH3OPHblu_nemyx 30.05.2020 19:08 # 0
KOPOHABuPYC 04.06.2020 20:30 # 0
guest8 30.05.2020 19:04 # −999
TEH3OPHblu_nemyx 30.05.2020 18:54 # 0
TEH3OPHblu_nemyx 04.06.2020 13:19 # 0
All binary packages we were offering contained "vc#" (for instance, "vc14") in the filename to designate the Visual Studio version which has been used to build them. This number ("#") has tradionally been the major number of the respective platform toolset. The preview releases of Visual Studio 2017 shipped with platform toolset 15.00, so we used "vc15" to mark the files. The first GA release of Visual Studio 2017, however, shipped with platform toolset 14.10 (to signal the backward compatibility), but the internal Visual Studio version number stayed 15.00. To avoid confusion with already distributed packages, we stuck with the "vc15" marker. For our Visual Studio 2019 builds (PHP 7.4 and master) we finally changed from "vc#" to "vs#" (note the "s"), where the number now designates the major internal Visual Studio version number. We are planning to stick with this new naming scheme for the foreseeable future.
Т.е. у VS2017 внутренний номер студии 15, внутренний номер тулсета 14.1x, _MSC_VER >= 1910; у VS2019 внутренний номер студии 16, внутренний номер тулсета 14.2x, _MSC_VER >= 1920.
Правда, легко запомнить?
jojaxon 04.06.2020 13:23 # 0
TEH3OPHblu_nemyx 04.06.2020 13:24 # 0
- Ты загрустила? - огорчился Рыцарь. - Давай я спою тебе в утешение песню.
- А она очень длинная? - спросила Алиса. В этот день она слышала столько стихов!
- Она длинная, - ответил Рыцарь, - но очень, очень красивая! Когда я ее пою, все рыдают... или...
- Или что? - спросила Алиса, не понимая, почему Рыцарь вдруг остановился.
- Или... не рыдают. Заглавие этой песни называется «Пуговки для сюртуков».
- Вы хотите сказать - песня так называется? - спросила Алиса, стараясь заинтересоваться песней.
- Нет, - ты не понимаешь, - ответил нетерпеливо Рыцарь. - Это заглавие так называется. А песня называется «Древний старичок».
- Мне надо было спросить: это у песни такое заглавие? - поправилась Алиса.
- Да нет! Заглавие совсем другое. «С горем пополам!» Но это она только так называется!
- А песня эта какая? - спросила Алиса в полной растерянности.
- Я как раз собирался тебе об этом сказать. «Сидящий на стене»! Вот какая это песня! Музыка собственного изобретения!
bormand 30.05.2020 16:54 # 0
guest8 30.05.2020 16:55 # −999
TEH3OPHblu_nemyx 30.05.2020 16:59 # 0
bormand 30.05.2020 18:17 # 0
TEH3OPHblu_nemyx 30.05.2020 22:49 # +1
ccompiler.py — выполняет общую диспетчеризацию;
msvccompiler.py — ищет старое говно типа шестой и седьмой студии;
msvc9compiler.py — ищет студию с 8-й (2005) по 12-ю (2013).
_msvccompiler.py — ищет студии, начиная с 14-й (2015), причём для 2015 и 2017 отдельные функции.
Грёбаные костыли...
bormand 30.05.2020 22:50 # 0
TEH3OPHblu_nemyx 30.05.2020 23:00 # +1
https://mail.python.org/archives/list/[email protected]/
https://mail.python.org/pipermail/distutils-sig/
https://wiki.python.org/moin/Distutils/DiscussionOverview
bormand 30.05.2020 23:04 # 0
Не, ну это один из основополагающих пакетов питона. Ему можно рабочую группу.
Но название с подчерком это конечно полный пиздец.
TEH3OPHblu_nemyx 30.05.2020 23:51 # 0
Оцени задачу в багтрекере (он у меня почему-то не грузится):
http://web.archive.org/web/20191214085713/bugs.python.org/issue35067
Remove _distutils_findvs and use vswhere.exe instead.
TEH3OPHblu_nemyx 31.05.2020 00:03 # 0
Yes! It appears that https://bugs.python.org/issue35067 is currently blocked in Russia.
Details:
URL https://bugs.python.org/issue35067
Domain bugs.python.org
IP 188.166.48.69
Decision 27-31-2018/Ид2971-18 made on 2018-04-16 by Генпрокуратура.
This block affects IP 188.166.0.0/17.
bormand 31.05.2020 00:06 # 0
TEH3OPHblu_nemyx 31.05.2020 00:55 # 0
https://github.com/microsoft/vswhere
vswhere -legacy -format json:
guest8 31.05.2020 00:07 # −999
3.14159265 31.05.2020 01:06 # +2
Вот заблокировали бажного Питоха.
Всё правильно. Учите Си.
3.14159265 31.05.2020 02:04 # +1
TEH3OPHblu_nemyx 31.05.2020 02:23 # 0
В последних версиях немного почистили, но всё равно скелеты остались.
KOPOHABuPYC 30.05.2020 22:50 # 0
3.14159265 31.05.2020 02:02 # +1
Кроссплатформенный язык говорили они. Виртуальная машина там, байт-код, вотэтоврот всё.
TEH3OPHblu_nemyx 31.05.2020 02:20 # +1
1024-- 31.05.2020 10:52 # +1