[py2exe] Retrouver d'où l'on vient avant de lancer une ligne de commande
Salut,
Etant en train de finaliser un petit outil en ligne de commande, je rencontre quelques difficultés avec la distribution. Imaginons un assembleur en ligne de commande avec un seul paramètre, le nom du fichier a assembler. Si l'assembleur s'appelle asm.exe et le fichier à assembler hello.asm, une fois que le répertoire de l'assembleur est ajouté au PATH, on peut tout à fait se positionner dans le répertoire du projet assembleur à partir du prompt (ici sous Windows, mais le principe semble universel) et taper la commande:
d:/sources/asm6502/hello> asm hello.asm
L'assembleur est trouvé dans le PATH et arrive à assembler le fichier source.
En python, l'assembleur est trouvé et lancé, le chemin vers le fichier source est conservé... Mais si l'assembleur a besoin de fichiers annexes comme un numéro de version ou autre chose, il n'y a pas trace du répertoire de l'assembleur...Ai-je raté quelque chose? Quelqu'un a une idée?
A+
Pfeuh
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
import sys
import os
try:
with open("version.txt", "r") as fp:
version = fp.read(-1)
print "%s version %s"%(sys.argv[0], version)
print "working directory is", os.getcwd()
print "command line is \"%s\""%" ".join(sys.argv)
if len(sys.argv) > 1:
with open(sys.argv[1], "r") as fp:
text = fp.read(-1)
print text
else:
print "an argument is mandatory!"
except Exception as (errmsg):
print errmsg
raw_input("Hit RETURN") |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
import distutils
import py2exe
import sys
import os
import shutil
DIST_NAME = "dist" # don't change it!
sys.argv = [__file__, "py2exe"]
print sys.argv
distutils.core.setup(console=["asm.py"], name="asm.exe")
shutil.copy ("version.txt", os.path.join(DIST_NAME, "version.txt")) |