2017-03-05 1 views
3

Je suis en train de construire un fichier EXE en utilisant un fichier setup.py de cx_Freeze avec la commande suivante:Cx_Freeze ne peut pas trouver pkg_resources /*.* »

python setup.py bdist_msi 

sortie de la commande se termine par:

Copying data from package pkg_resources... error: [Error 3] The system cannot find the path specified: 'C:\Program Files\Anaconda2\lib\site-packages\setuptools-27.2.0-py2.7.egg\pkg_resources/*.*'

Je ne sais pas quoi en faire. J'ai vérifié et l'oeuf de setuptools existe, et à l'intérieur il y a une bibliothèque de pgk_resources, et je ne sais pas quoi faire. J'utilise une installation conda et python2.7.

Toute aide sera appréciée.

+0

Hey @Yiftach le problème persiste-t-il? Je suis confronté au même problème. erreur: [Erreur 3] Le système ne peut pas trouver le chemin spécifié: 'C: \\ Anaconda2 \\ lib \ \ site-paquets \\ setuptools-27.2.0-py2.7.egg \\ pkg_resources /*.*' Cependant, dans mon cas, il n'y a pas de dossier dans site-packeges \\ setuptools-27 * –

Répondre

0

Je résolu le problème par

pip install --upgrade setuptools 
pip install --upgrade distribute 

que j'appris de la réponse d'Ali Akdurak ici No module named pkg_resources

1

C'est parce que cx_Freeze ne peut pas travailler avec des sous-paquets des paquets installés comme emballés .egg s. Une installation Python normale utilise pip qui désactive toujours .egg s, contrairement à Anaconda.

Le numéro correspondant: Failed to find module in subpackage in zipped egg · Issue #120 · anthony-tuininga/cx_Freeze. Il relie la pull request avec le correctif:

diff --git a/cx_Freeze/finder.py b/cx_Freeze/finder.py 
--- a/cx_Freeze/finder.py 
+++ b/cx_Freeze/finder.py 
@@ -61,6 +61,15 @@ 
     If the module is found, this returns information in the same format 
     as :func:`imp.find_module`. Otherwise, it returns None. 
     """ 
+  # FIX: retrieve_loadable_module dict uses paths with OS's separator 
+  # as keys. However the path received as argument can have mixed 
+  # slashes. This may cause some searches to fail when they should 
+  # work. One case where this seems critical is when there are 
+  # subpackages inside an egg package. 
+  # 
+  # See `record_loadable_module` method to see how mixed slashes 
+  # happen. 
+  path = os.path.normpath(path) 
     try: 
      return self.retrieve_loadable_module(path, modulename) 
     except KeyError: 

Remplacer tous les .egg s que vous avez avec les versions non emballés avec pip install --upgrade comme suggéré dans l'autre réponse est qu'une solution temporaire - jusqu'à ce que vous obtenez un autre .egg.

+0

@Yiftach si cette réponse a résolu votre problème, s'il vous plaît envisager [acceptation] (https://meta.stackexchange.com/questions/ 5234/how-does-accepting-an-answer-work). –