[Python] Sapete come lanciare l'esecuzione di uno script python3.4 dallo script python 2.76?
Marco Ippolito
ippolito.marco a gmail.com
Ven 26 Set 2014 13:09:06 CEST
grazie Andrea e grazie Manlio del vosto aiuto
nel file b.py (quello scritto in python 2.76) ho messo:
#/usr/bin/python
# giusto per avere un risultato qualsiasi in python 2.76
a = 2
b = 3
somma = a + b
print "somma = ", somma
import subprocess
p = subprocess.call(["python3.4",
"/home/ubuntu/ggc/prove/sole24ore/asyncioUse_5.py"])
print p
time python py34Activation.py
somma = 5
Traceback (most recent call last):
File "/home/ubuntu/ggc/prove/sole24ore/asyncioUse_5.py", line 4, in <module>
import aiohttp
ImportError: No module named 'aiohttp'
1
mi dice che non c'è il modulo aiohttp
ma questo perchè ho installato il package aiohttp solo per python3.4
mentre non c'è in python 2.76
non è che devo prima attivare il virtualenv in cui si trova python3.4?
se così fosse, si dovrebbe seguire questo "flusso logico":
- eseguo il mio codice (in questo caso trial super-banale)
in python 2.76
- attivo il virtualenv py3.4 in cui c'è python3.4 ed i relativi
package (tra cui aiohttp)
- eseguo il codice asyncioUse_5.py
- disattivo il virutalenv py3.4, tornando in questo modo all'ambiente
di default con python2.76
Usando quello che ho trovato qui:
http://stackoverflow.com/questions/6943208/activate-a-virtualenv-with-a-python-script
ho messo allora nel file b.py (scritto in python2.76):
#/usr/bin/python
a = 2
b = 3
somma = a + b
print "somma = ", somma
import os
os.system('/bin/bash --rcfile /home/ubuntu/ggc/prove/py34_activate.sh')
import subprocess
p = subprocess.call(["python3.4",
"/home/ubuntu/ggc/prove/sole24ore/asyncioUse_5.py"])
print p
in py34_activate.sh ho messo:
#!/bin/bash
. /home/ubuntu/ggc/prove/py3.4/bin/activate
risultato:
time python py34Activation.py
somma = 5
cioè mi ha eseguito il codice super-banale in python2.76 e mi ha
attivato il virtualenv in cui c'è python3.4 ed i package relativi (tra
cui aiohttp)
questa volta non mi dice "aiohttp non trovato" perchè si trova nel
virtualenv py3.4, ma non mi esegue il codice asyncioUse_5.py
Qualche suggerimento?
Marco
Maggiori informazioni sulla lista
Python