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 : Sélectionner tout - Visualiser dans une fenêtre à part
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