Installation Python2.7 et fichiers d'import
Bonjour à tous ,
C'est mon premier post sur Python que je découvre
Je dois installer sur Windows (32bits) un programme ancien compilé avec Python 2.7
j'ai donc voulu installer Python2.7 sur celui-ci mais je n'ai pas "pip" avec cette version et
ne sait donc pas comment faire importer les modules nécessaires ( serial , matplotlib etc ... ) pour faire tourner le programme
Je pourrais aussi adapter le programme .py à Python 3.13 mais là je manque de pratique
et je ne sais donc pas comment faire et j'aurai donc besoin de votre éclairage et votre aide pour installer Python correctement
je mets ici pour la compréhension le programme INA226.py dont je ne suis pas l'auteur ( programme permettant à partir d'une liaison PC de visualiser les données numériques avec matplotlib )
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
import sys, time
import serial
import matplotlib.pyplot as plt; plt.rcdefaults()
import numpy as np
import seaborn as sns
sns.set()
duration = 60
plot = "plot"
voltageData = {}
currentData = {}
voltage = 0
current= 0
maxVoltage = 0.0
minVoltage = 1000000.0
maxCurrent = 0.0
minCurrent = 1000000.0
x_ticks = []
if len(sys.argv) > 2:
duration = int(sys.argv[2])
if len(sys.argv) > 3:
plot = sys.argv[3]
start_time = time.time()
line = serial.Serial(sys.argv[1], 230400, timeout=1000, parity=serial.PARITY_NONE)
while time.time() < start_time + duration:
s = line.readline()
if not s.startswith('INA226 POWER BENCH') and not s.startswith('read current offset from EEPROM'):
if s.find('V') != -1:
t, d = s.split(':')
dummy, voltage = d.split('=')
voltage = float(voltage)/1000
t = int(t)
voltageData[t] = voltage
print t, 'V=', voltageData[t]
if maxVoltage < voltage:
maxVoltage = voltage
if minVoltage > voltage:
minVoltage = voltage
if s.find('I') != -1:
t, d = s.split(':')
dummy, current = d.split('=')
current = float(current)/10
t = int(t)
x_ticks.append(t)
currentData[t] = current
print t, 'I=', currentData[t]
if maxCurrent < current:
maxCurrent = current
if minCurrent > current:
minCurrent = current
voltageSerie = []
currentSerie = []
totalVoltage = 0.0
totalCurrent = 0.0
for t in range(duration * 1000):
if t in voltageData:
voltage = voltageData[t]
voltageSerie.append(voltage)
totalVoltage += voltage
if t in currentData:
print "current change:", current, 'at', t
current = currentData[t]
currentSerie.append(current)
totalCurrent += current
text = "DURATION: %s s\n" % duration
text += "MIN VOLTAGE: %s V\n" % minVoltage
text += "MAX VOLTAGE: %s V\n" % maxVoltage
text += "MIN CURRENT: %s uA\n" % minCurrent
text += "MAX CURRENT: %s uA\n" % maxCurrent
text += "AVG VOLTAGE: %1.2f V\n" % (totalVoltage / (duration * 1000))
text += "AVG CURRENT: %1.2f uA\n" % (totalCurrent / (duration * 1000))
print text
if plot == "plot":
plt.plot(x_ticks, currentSerie)
elif plot == "bar":
plt.bar(x_ticks, currentSerie)
plt.ylabel('uA')
plt.yscale('log')
plt.grid(True,which="both")
plt.title('POWER TESTBENCH')
plt.text(200, int(maxCurrent) / 4, text, fontdict={'family': 'serif', 'color': 'darkred', 'weight': 'normal', 'size': 10})
plt.show() |
merci par avance