Lancer un script python en mode 32 bits

a marqué ce sujet comme résolu.

Salut !

J'ai un petit souci que je n'arrive pas à résoudre. Je code en python depuis peu et pour les besoins de mon script il faudrait qu'il s'exécute en mode 32 bits. Je suis sous Debian Jessie, architecture amd64.

Après quelques recherches je me rends compte que ce n'est pas si facile que je le pensais, en fait je ne sais pas si c'est possible surtout. Je me dis qu'il suffit d'installer le paquet python2.7:i386 … sauf qu'il rentre en conflit avec python2.7 et que pour l'installer je dois supprimer ce dernier sauf que ça me supprime aussi une bonne partie de mon système........ ^^

Alors question idiote (ou pas): y a t-il un moyen "simple" de préciser si un script python doit s'exécuter en 64 ou en 32 bits ? (avec gcc par exemple il suffit de préciser -m32 pour avoir un binaire en mode 32 bits, je m'attendais à quelque chose du genre en python sauf que là ça semble plus compliqué, bien plus compliqué :'( )

Merci d'avance ;-)

Euh je dis peut-être des conneries mais comme le problème de compatibilité viens de le version, prends en une différente (par exemple la 3.5) en 32 bit L'installation des deux versions différente ne pose pas de problème ça réglera peut-être ton problème Sinon j'ai trouver ca: http://stackoverflow.com/questions/3867131/how-to-build-32bit-python-2-6-on-64bit-linux

+0 -0

Ok. D'abord des explications pour éclaircir ton problème :

Python n'a pas de "mode 32 ou 64 bits". Ces considérations sur l'architecture de ton microprocesseur sont complètement abstraites par l'interpréteur. Il est évidemment impossible d'avoir un interpréteur compilé à la fois pour du x86 et du x86_64.

Par contre tu peux installer une version i386 de Python dans un virtualenv pour éviter de clasher avec la version par défaut de ton système.

Enfin par curiosité, d'où vient cette contrainte d'utiliser un interpréteur 32 bits ? Tu cherches à utiliser une bibliothèque dont tu ne possèdes que le binaire ?

+0 -0

Ok, bon c'est assez complexe au final… xD

En fait non, je veux simplement récupérer l'adresse d'une variable d’environnement pour la transmettre à un programme en C mais qui est lui compilé pour du 32 bits (il faut que l'adresse envoyée soit donc sur 4 octets et pas sur 8, et je parle de l'adresse et pas du contenu de la variable. Ca c'est mon autre problème :P ).

Je peux bien sur "hardcoder" cette adresse mais j'ai envie que ça soit un peu plus "automatique"

+0 -0

Ok, bon c'est assez complexe au final… xD

En fait non, je veux simplement récupérer l'adresse d'une variable d’environnement pour la transmettre à un programme en C mais qui est lui compilé pour du 32 bits (il faut que l'adresse envoyée soit donc sur 4 octets et pas sur 8, et je parle de l'adresse et pas du contenu de la variable. Ca c'est mon autre problème :P ).

Je peux bien sur "hardcoder" cette adresse mais j'ai envie que ça soit un peu plus "automatique"

Que20

Ouais, en gros c'est juste une question de calcul et de représentation du résultat. Le module struct fera parfaitement l'affaire. Il faut aussi savoir que les entiers en Python ne sont absolument pas soumis aux contraintes d'architecture : un int peut être indéfiniment grand, du moment que sa représentation tient dans ta RAM.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte