2011-08-04 3 views
2

J'ai récemment mis à jour mon installation de Python 2.7.1 vers la version 2.7.2 en utilisant le programme d'installation .msi et le processus a semblé se dérouler correctement. Cependant, par la suite, j'ai regardé quelles étaient les valeurs par défaut pour sys.path et j'ai remarqué l'entrée pour 'C: \ Windows \ system32 \ python27.zip'. En me demandant exactement ce qu'il contenait, j'ai décidé d'essayer de l'ouvrir avec un utilitaire Zip pour vérifier son contenu - mais j'ai vite découvert que le fichier n'était pas là (bien qu'il y ait un python27.dll).Fichier C: Windows system32 python27.zip manquant

De toute façon je me demande maintenant si quelque chose ne va pas. Plusieurs programmes Python existants que j'utilise fréquemment semblent tous fonctionner sans problèmes, donc je ne suis pas sûr que l'installation soit foirée ou non (ou comment la réparer, si c'est le cas).

Mise à jour:

Je suis au courant et avoir lu PEP273, Sache donc sur les modules de fichiers .zip. Ce n'est pas ce que je demande. Ce que je veux savoir, c'est qu'il n'y a pas de python27.zip installé sur mon système même s'il est mentionné dans mon sys.path un problème? Je n'ai jamais rencontré de problèmes lors de l'importation de bibliothèques Python standard, ce que je ne m'attendrais pas à en avoir.

Répondre

5

From PEP 273 -- Import Modules from Zip Archives:

Tout comme sys.path a actuellement des noms de répertoire par défaut, un nom d'archive zip par défaut est ajouté aussi. Sinon, il n'y a aucun moyen d'importer tous les fichiers de la bibliothèque Python à partir d'une archive.

...

Le problème est ce que le nom devrait être. Le nom doit être lié avec la version Python, de sorte que l'exécutable Python puisse trouver correctement les bibliothèques correspondantes, même s'il existe plusieurs versions de Python sur la même machine.

Nous ajoutons un nom à sys.path. Sous Unix, le répertoire est sys.prefix + "/ lib" et le nom de fichier est "python% s% s.zip"% (sys.version [0], sys.version [2]). Donc pour Python 2.2 et le préfixe/usr/local, le chemin /usr/local/lib/python2.2/ est déjà sur sys.path, et /usr/local/lib/python22.zip serait ajouté. Sous Windows, le fichier est le chemin d'accès complet à python22.dll, avec "dll" remplacé par "zip". Le nom d'archive zip est toujours inséré en tant que second élément dans sys.path. Le est d'abord le répertoire du main.py (merci Tim).

+0

Oui, je suis au courant et j'ai lu PEP273. D'après ce qui est dit, il semble que le fait de ne pas avoir un fichier python27.zip pourrait être une erreur ou un problème - mais pour autant que je sache, tout semble aller bien. J'ai vérifié une autre machine avec 2.7.1 là-dessus et il manque également ce dossier. De toute façon, je ne pense pas que votre réponse réponde à ma question. – martineau

Questions connexes