Is there a specific use case where your libraries/applications requires a very recent version of Python >=3.9, but you are also stuck on over a decade-old Windows 7 ESU? This seems like a fairly unlikely corner case, and it seems likely that another solution is possible, even if not ideal.
asking is for volunteers to put in all the work, for free, to develop, package, test and deploy a Python release for an EOL OS that is only supported for a handful of high-end corporate customers, including presumably your firm
Since there are very very very few lines of code that prevent python3.9/3.10 to run on Win7, I thought maybe it would be possible to add something like in future versions of 3.10, at the start of the interpreter:
There are a few other changes in 3.9 that would also make things unsafe on Win7 (including that LoadLibrary fix mentioned a few times). The method we use for installing the UCRT changed significantly, for example.
Would it be maybe at least possible to change the installer to not block python installation on windows 7 but instead inform the user that python is not officialy supported on windows 7 and if you wish to use it your are responsible to make it work yourself (with yes/no button)
Because if I want to install python on windows 7, I first have to install 3.8 (because the installer doesnt just copy files, it also sets PATH and some registry keys), then install 3.9 on windows 11, then copy that installation over to windows 7, add nalexandru/api-ms-win-core-path-HACK dll to it and then I can use it, all this because installer refuses to install on windows 7
Unlike most Unix systems and services, Windows does not include a systemsupported installation of Python. To make Python available, the CPython teamhas compiled Windows installers with every release for many years. These installersare primarily intended to add a per-user installation of Python, with thecore interpreter and library being used by a single user. The installer is alsoable to install for all users of a single machine, and a separate ZIP file isavailable for application-local distributions.
Comme spcifi dans la PEP 11, une release Python ne gre qu'une plateforme Windows alors que Microsoft considre la plateforme sous support tendu. Ce qui veut dire que Python 3.12 fonctionne sur Windows 8.1 et plus. Si vous avez besoin de compatibilit Windows 7, vous devez utiliser Python 3.8.
Les paquets nuget.org sont des installations lgres destines aux systmes d'intgration continue. Ils peuvent tre utiliss pour crer des packages Python ou excuter des scripts, mais ne sont pas modifiables et n'ont pas d'outils d'interface utilisateur.
Vous n'aurez pas besoin d'avoir les droits d'administrateur (sauf si une mise jour de la bibliothque d'excution C est ncessaire ou si vous installez le Lanceur Python pour Windows pour tous les utilisateurs)
Dans les dernires versions de Windows, cette limitation peut tre tendue approximativement 32.000 caractres. Votre administrateur devra activer la stratgie de groupe Enable Win32 long paths ou mettre la valeur de LongPathsEnabled 1 dans de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem.
Toutes les options disponibles dans l'installateur graphique peuvent aussi tre spcifies dans l'invite de commande, permettant des installateurs scripts de rpliquer une installation sur plusieurs machines sans interaction humaine. Ces options peuvent aussi tre ajoutes sans enlever l'interface graphique pour changer les valeurs par dfauts.
Toutes les autres options sont passes sous la forme name=value, ou value est normalement soit 0 pour dsactiver une fonctionnalit, soit 1 pour activer une fonctionnalit, soit un chemin. Ci-dessous la liste complte des options.
Pour permettre l'utilisateur d'installer facilement une copie de Python sans la suite de tests, vous pouvez proposer un raccourci avec la commande suivante. Cela affichera une page initiale simplifie et interdira la personnalisation :
(Notez qu'omettre le lanceur omet aussi les associations de fichiers, et n'est recommand que pour les installations par utilisateur quand il y a aussi une installation complte sur le systme qui a inclus de lanceur.)
Les options listes ci-dessus peuvent aussi tre passes dans un fichier nomm unattend.xml ct de l'excutable. Ce fichier spcifie une liste d'options et de valeurs. Quand une valeur est donne en tant qu'attribut, elle sera convertie en nombre si possible. Les valeurs donnes en lment texte sont toujours laisses en tant que chanes de caractres. Ce fichier d'exemple propose les mmes options que l'exemple prcdent :
Comme certaines fonctionnalits de Python ne sont pas incluses dans l'installateur initial, la slection de certaines de ces fonctionnalits peut demander une connexion Internet. Pour viter ce besoin, tous les composants ncessaires peuvent tre tlchargs la demande pour crer un agencement (layout) complet qui ne demandera plus de connexion Internet indpendamment des options slectionnes. Notez que ce tlchargement peut tre plus gros que ncessaire, mais lorsqu'un un grand nombre d'installations doivent tre faites, il est trs utile d'avoir une copie locale.
Excutez la commande suivante depuis l'invite de commande pour tlcharger tous les fichiers requis possibles. Rappelez-vous de remplacer python-3.9.0.exe par le nom rel de votre installateur et de crer des agencements avec leurs propres dossiers pour viter les conflits entre fichiers du mme nom.
Une fois Python install, vous pouvez ajouter ou supprimer des fonctionnalits depuis l'outil Windows Programs and Features (Programmes et Fonctionnalits). Slectionnez la ligne Python et choisissez Uninstall/Change (Dsinstaller/Modifier) pour ouvrir l'installateur en mode maintenance.
Modify vous permet d'ajouter ou d'enlever des fonctionnalits en modifiant les cases cocher (les cases inchanges n'installeront ou ne supprimeront rien). Certaines options ne peuvent pas tre modifies dans ce mode, comme le dossier d'installation. Pour modifier ces options, vous devrez r-installer Python entirement.
Aprs l'installation, Python peut tre lanc depuis le menu Dmarrer. Il est aussi disponible partir de n'importe quelle invite de commande ou session PowerShell en entrant python. De plus, pip et IDLE peuvent tre utiliss en entrant pip ou idle . IDLE peut galement tre trouv dans le menu Dmarrer.
Les trois commandes sont galement disponibles avec les suffixes de numro de version, par exemple, python3.exe et python3.x.exe ainsi que python.exe (ou 3.x est la version spcifique que vous souhaitez lancer, tel que 3.12). Depuis le menu Dmarrer , ouvrez Alias d'excution d'application (ou Manage App Execution Aliases en anglais) pour choisir quelle version de Python est associe quelle commande. Il est recommand de s'assurer que pip et idle utilisent la mme version de Python que la commande python.
Si vous avez install une autre version de Python et l'avez ajoute votre variable d'environnement PATH, elle sera disponible en tant que python.exe plutt que celle de la boutique Microsoft. Pour accder la nouvelle installation, utilisez python3.exe ou python3.x.exe.
Pour supprimer Python, depuis les paramtres Windows ouvrez Apps and Features (Applications et Fonctionnalits), ou bien trouvez Python dans le menu Dmarrer et cliquez avec le bouton droit pour slectionner dsinstaller. La dsinstallation supprimera tous les paquets que vous avez installs directement dans cette installation Python, mais ne supprimera aucun environnement virtuel
En raison de restrictions sur les applications Microsoft Store, les scripts Python peuvent ne pas avoir un accs en criture complet aux emplacements partags tels que TEMP et le registre. Au lieu de cela, il crira sur une copie prive. Si vos scripts doivent modifier les emplacements partags, vous devrez installer le programme d'installation complet.
At runtime, Python will use a private copy of well-known Windows folders and the registry.For example, if the environment variable %APPDATA% is c:\Users\\AppData\,then when writing to C:\Users\\AppData\Local will write toC:\Users\\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\Local\.
When reading files, Windows will return the file from the private folder, or if that does not exist, thereal Windows directory. For example reading C:\Windows\System32 returns the contents of C:\Windows\System32plus the contents of C:\Program Files\WindowsApps\package_name\VFS\SystemX86.
Pour en savoir plus sur ces limitations, consultez la documentation de Microsoft propos des applications avec une confiance totale, actuellement disponible sur docs.microsoft.com/fr-fr/windows/msix/desktop/desktop-to-uwp-behind-the-scenes
L'outil de ligne de commande nuget.exe peut tre tlcharg directement partir de , par exemple, l'aide de curl ou de PowerShell. Avec l'outil, la dernire version de Python pour les machines 64 bits ou 32 bits est installe l'aide de :
En gnral, les paquets nuget ne peuvent pas tres mis jour et les versions plus rcentes doivent tre installes cte cte et rfrences l'aide du chemin d'accs complet. Vous pouvez galement supprimer le rpertoire du paquet manuellement et l'installer nouveau. De nombreux systmes CI le feront automatiquement s'ils ne conservent pas les fichiers entre les builds.
La distribution embarque est un fichier ZIP contenant un environnement Python minimal. Il est destin agir dans le cadre d'une autre application, plutt que d'tre directement accessible par les utilisateurs finaux.
When extracted, the embedded distribution is (almost) fully isolated from theuser's system, including environment variables, system registry settings, andinstalled packages. The standard library is included as pre-compiled andoptimized .pyc files in a ZIP, and python3.dll, python37.dll,python.exe and pythonw.exe are all provided. Tcl/tk (including alldependents, such as Idle), pip and the Python documentation are not included.
La distribution intgre n'inclut pas le Microsoft C Runtime et il est de la responsabilit de l'installateur d'application de le fournir. Le runtime peut avoir dj t install sur le systme d'un utilisateur prcdemment ou automatiquement via Windows Update, et peut tre dtect en trouvant ucrtbase.dll dans le rpertoire systme.
d3342ee215