2011-07-29 2 views
1

J'ai python 2.5 et 2.6 installé. Je cours mon projet sur 2.6. D'abord, j'avais py2exe pour 2.5 installé mais cela ne fonctionnait pas alors j'ai installé py2exe pour 2.6 et supprimé l'autre version, mais le module n'a pas été trouvé. Maintenant, j'ai changé le chemin sys:La commande 'py2exe' est invalide

import sys 
sys.path.append('F:\Program Files\Python26\Lib\site-packages\py2exe') 
from build_exe import py2exe 
from distutils.core import setup 

setup( 
name =... 

Quand je tape dans la console: chemin \ setup.py py2exe je reçois "erreur: commande non valide 'py2exe'"

EDIT: J'ai changé le chemin d'accès 'F:/Programmes/Python26/Lib/site-packages/py2exe' avec des barres obliques correctes. Console ressemble à ceci:

E:\Eclipse Workspace\...\src>setup.py py2exe 
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] 
or: setup.py --help [cmd1 cmd2 ...] 
or: setup.py --help-commands 
or: setup.py cmd --help 
error: invalid command 'py2exe' 
+1

Utilisez toujours des chaînes brutes ou se sont échappés antislashs pour les chemins Windows. – interjay

+0

Essayez de désinstaller et de réinstaller la version 2.6 - peut-être que certains composants communs ont été supprimés lorsque vous avez supprimé l'ancienne version. –

+0

Réinstallation réinstallée et antislashs. Il dit toujours "commande invalide py2exe" – TilmanK

Répondre

3

Voici votre problème:

sys.path.append('F:\Program Files\Python26\Lib\site-packages\py2exe') 

Une barre oblique inverse (\) est un escape character et interperted d'une manière particulière par presque tous les langages de programmation, y compris Python. Il est malheureux que DOS (Et par extension Windows) utilise également la barre oblique inverse comme un séparateur de répertoire au lieu d'une barre oblique. There is a bit of history behind this ...

Dans tous les cas, vous avez quelques options:

barres obliques d'utilisation. Python va les convertir en backslashes en interne. Utilisez deux backslahes, cela permettra d'échapper les barres obliques inverses et d'insérer une seule barre oblique inverse.

d = 'C:\\Program Files\\' 

Utilisez une chaîne « brute » qui n'interprète pas le caractère d'échappement. Pour ce faire, ajoutez un r avant la chaîne.

d = r'C:\Program Files\' 

Personnellement, je préfère la première solution. Mais j'ai vu les deux autres être utilisé un peu trop. Notez que cela fonctionne également dans l'autre sens, donc si vous utilisez des barres obliques inverses, Python le convertira en barres obliques sur les systèmes UNIX et Linux.

Comme un soupçon de bonus gratuit, cela peut aussi être un bon endroit pour indiquer la fonction os.path.join() :)

+0

Merci pour votre réponse.J'ai essayé 'F:/Program Files/Python26/Lib/site-packages/py2exe' et aussi \\ mais j'ai toujours la même erreur. Lorsque j'ajoute une barre oblique à la fin de 'F:/Program Files/Python26/Lib/site-packages/py2exe /', il n'y a pas de module nommé build_exe. Une idée de pourquoi python ne trouve pas py2exe? Pygame est situé dans le même répertoire et je peux l'importer sans problèmes. – TilmanK

+0

Normalement, vous n'avez pas besoin d'ajouter le chemin s'il se trouve dans des packages de site. Avez-vous installé à la fois Python et py2exe en utilisant les programmes d'installation? Dans tous les cas, vous devrez ajouter '' F:/Program Files/Python26/Lib/site-packages/'' à votre chemin, sans le py2exe. – Carpetsmoker

+0

Oui, tout est installé avec l'installateur. Avec F:/Program Files/Python26/Lib/site-packages/je reçois "Erreur d'importation: Aucun module nommé build_exe. \ Site-packages \ py2exe contient build_exe.py donc je ne sais pas pourquoi python se plaint à nouveau – TilmanK

-1

La solution est très simple.

Ajouter l'installation.

Ainsi, au lieu de

setup.py py2exe

écrire

setup.py py2exe install

et il fonctionne