Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 1
Регистрация: 29.03.2017
Сообщений: 11
1

Запуск Python кода под Windows

23.05.2017, 18:34. Просмотров 1278. Ответов 13
Метки нет (Все метки)

Есть вот такая вот програмка:
Python
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
import math
from  decimal import Decimal
 
import matplotlib.pyplot as plt
 
def f (d):
    return Decimal(str(d))
 
 
 
def constTicks(array):
    array = array[1:]
    for i in range(1,len(array)):
        if abs(array[i-1] - array[i])>1:
            ma = int(round(max(array)))
            mi = int(round(min(array)))
            step = (ma-mi)//6
            ma += step
            return [int(i) for i in range(mi, ma+1, step)]
    x = int(round(array[1]))
    return [x-4, x, x+4]
 
 
 
def defirinV(coordinate, time, func):
    t = 0.000001
    coordinateDif = [[coordinate[0], eval(func)]]
    for i in range(1, len(coordinate)):
        t = time[i]+0.000001
        coordinateDif.append([coordinate[i], eval(func)])
    result = []
    for i in coordinateDif:
        result.append((i[1]-i[0])/0.000001)
    return result
 
def AAA(coordinate, time, func):
    t = time[0]
    coordinateDif = [[coordinate[0], eval(func)]]
    for i in range(1, len(coordinate)):
        t = time[i]+0.000001
        coordinateDif.append([coordinate[i], eval(func)])
    result = []
    for i in coordinateDif:
        result.append((i[1]-i[0])/0.000001)
    return result
 
def Crutch(func):
    last = func.find("f(t**2)")
    if last < 0: return 0
    first = last-3
 
    answer = 0
    k = 0
    while func[first] in [str(i) for i in range(10)]:
        answer = 10**k*func[first]+answer
        k += 1
        first -= 1
 
    if first -2 >= 0:
        if func[first-2] == "-": return -answer*2
 
    return answer*2
 
 
def defirinA(coordinate, time, func):
    speed1 = AAA(coordinate, time, func)
    speed2 = AAA([eval(func) for t in [i+0.000005 for i in time]], [i+0.000005 for i in time], func)
    print(speed1)
    print(speed2)
    result = []
    for i in range(len(speed1)):
        result.append((speed2[i]-speed1[i])/0.00001*2)
    result[0] = Crutch(func)
    return result
 
def parser(inp):
    row = ["cos", "sin","log","ln", "e^","^"]
    pretty = ["math.cos","math.sin","math.log", "math.log", "math.exp","**"]
    for i in range(len(row)):
        if row[i] in inp:
            print(i)
            inp = inp.replace(row[i], pretty[i])
 
    return inp
 
 
print("Введите уравнение S(t): ")
func = input()
print("Укажите кол-во секунд(целые числа):")
t1 = int(input())
func = parser(func)
print(func)
n =256*t1+1
a0 = 0
 
time = [i/128 for i in range(0,n) if ("log" not in func and "ln" not in func) or (i!=0)]
coordinate = [eval(func) for t in time]
movement = [i-coordinate[0] for i in coordinate]
speed = defirinV(coordinate, time, func)
axilir = defirinA(coordinate, time, func)
k = 0
if "log" in func or "ln" in func:
    k = 1
 
#print ("\n\n\n\ncoordinate  ", [str(i).ljust(20," ") for i in coordinate])
#print ("movement    ", [str(i).ljust(20," ") for i in movement])
#print ("time        ", [str(i).ljust(20," ") for i in time])
#print ("speed       ", [str(i).ljust(20," ") for i in speed])
#print ("axilir      ", [str(i).ljust(20," ") for i in axilir])
 
# sub 1
plt.subplot(221)
 
plt.plot(time[1+k:], coordinate[1+k:])
 
plt.grid(True)
plt.title(r'$Координаты\ от\ времени$')
plt.ylabel(u'Координата [м]', fontsize=12)
 
# sub 2
plt.subplot(222)
 
plt.plot(time[1+k:], movement[1+k:])
 
plt.grid(True)
plt.title(r'$Перемещения\ от\ времени$')
plt.ylabel(u'Перемещение [м]', fontsize=12)
 
 
# sub 3
plt.subplot(223)
plt.plot(time[k:], speed[k:])
 
plt.grid(True)
plt.title(r'$Скорости\ от\ времени$')
plt.xlabel(u'Время [c]', fontsize=12)
plt.ylabel(u'Скорости [м/c]', fontsize=12)
plt.yticks(constTicks(speed))
 
# sub 4
plt.subplot(224)
 
plt.plot(time[k+1:], axilir[k+1:])
 
plt.grid(True)
plt.title(r'$Полного\ ускорения\ от\ времени$')
plt.xlabel(u'Время [c]', fontsize=12)
plt.ylabel(u'Полного ускорения [м/c^2]', fontsize=12)
plt.yticks(constTicks(axilir))
 
 
plt.show()
 
#fout = open("calc.txt", "w")
#fout.write("N".ljust(5, " ")+"".join([i.ljust(15, " ") for i in ["coordinate", "movement", "time", "speed", "axilir"]])+"\n")
#for i in range(len(coordinate)):
#    fout.write(str(i+1).ljust(5, " ")+"".join([str(round(i, 4)).ljust(15, " ") for i in [coordinate[i], movement[i], time[i], speed[i], axilir[i]]])+"\n")
#fout.close()
Надо что бы препод мог эту програмку запустить у себя на винде с минимум кликов (Т.е. максимум что он сделает - постаивть интерпритатор Python), как это можно это реализовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2017, 18:34
Ответы с готовыми решениями:

Запуск python-кода другой программы
Добрый день! Я слышал, что в Python3 можно каким-то образом запускать на исполнение код другой...

IDE Python под windows
Какие есть ide под винды кроме стандартного (который на python.org) ?

Запуск модуля в Python
Начал изучение языка программирования Python пару дней назад. По ходу разбираюсь с функциями и всем...

Изменение кода запроса с Python 2 на Python 3
Доброго времени суток. Я пишу программу и для её реализации мне необходимо, чтобы она делала...

13
4085 / 1555 / 292
Регистрация: 17.03.2012
Сообщений: 8,495
Записей в блоге: 5
23.05.2017, 18:43 2
Можно батник, можно ярлык.
0
0 / 0 / 1
Регистрация: 29.03.2017
Сообщений: 11
23.05.2017, 18:52  [ТС] 3
Батник для запуска? А что тогда делать с библиотеками matplolib и math, мне ещё понадобится PyQt?
0
4085 / 1555 / 292
Регистрация: 17.03.2012
Сообщений: 8,495
Записей в блоге: 5
23.05.2017, 20:54 4
kitchip, я думал, речь идёт именно об запуске конкретного скрипта.
Так - речь скорее об установке Питона с пакетами.

Можно взять готовую большую сборку. WinPython/Anaconda. math входит в стандартный комплект.

Добавлено через 2 минуты
Ну и батник тоже можно
Сначала setup питона, потом pip install matplotlib. Можно также whl с собой взять.
0
0 / 0 / 1
Регистрация: 29.03.2017
Сообщений: 11
23.05.2017, 21:17  [ТС] 5
dondublon,
Будет ли работать если, сетапнуть питон в папку(Которую я скину преподавателю) вместе с библиотеками и создать скрипт через батник, который бы запускал этот питон файл(прогу выше) из под питона в папке? Как в virtualenv.
0
in code we trust
132 / 161 / 12
Регистрация: 29.02.2016
Сообщений: 874
23.05.2017, 21:41 6
Всё можно запустить батником но зачем!
0
0 / 0 / 1
Регистрация: 29.03.2017
Сообщений: 11
23.05.2017, 21:43  [ТС] 7
dondublon,
__py__,
давайте ещё раз.
Есть проблема такого рода, преподаватель по физике с высокой долей вероятностью не сможет мне засчитать задачу, если он не сможет запустить мою программу у себя на компьютере без особых проблем, так как он оценивеат её с точки зрения пользователя. Установить Python он готов. Ставить дополнительные библиотеки - сомнительное удовольствие.
Поэтому я хочу найти способ, как я смогу сделать так, что бы преподаватель мог спокойно запустить мою прогу, установив только Python3.



----------------------
Ой, а чего это в бан отправили dondublon, он же мне пытался помочь...
0
in code we trust
132 / 161 / 12
Регистрация: 29.02.2016
Сообщений: 874
23.05.2017, 21:50 8

Сколько ни просматривал проекты на опенсурс и ни разу не встречал, чтобы взял код скачал и заработало без импорта.
0
0 / 0 / 1
Регистрация: 29.03.2017
Сообщений: 11
23.05.2017, 21:52  [ТС] 9
__py__, ну, с преподом тяжело спорить. Особенно по физике, когда экзамен своими силами с трудом закроешь )
0
in code we trust
132 / 161 / 12
Регистрация: 29.02.2016
Сообщений: 874
23.05.2017, 21:53 10
Получается там все дураки а препод самый умный?
0
0 / 0 / 1
Регистрация: 29.03.2017
Сообщений: 11
23.05.2017, 21:58  [ТС] 11
__py__, боюсь, вы не так поняли, он совсем не дурак. Просто он предложил сделать рабочий проект по физике, который теоретически мог бы использовать пользователь, ставить Python3 +3хбиблиотеки - не имеет смысла, когда под рукой excel. Этим проектом можно было бы закрыть экзамен. Не можешь? - на экзамене тебе очень рады )
0
in code we trust
132 / 161 / 12
Регистрация: 29.02.2016
Сообщений: 874
23.05.2017, 22:00 12
можно сделать батник с запуском импорта библиотек но гарантия что у него установится на винде с 1-й попытки равен 1 шансу из 1000! Точнее вообще равен 0 так как без запуска с правами админа вообще скорее всего не прокатит.
1
0 / 0 / 1
Регистрация: 29.03.2017
Сообщений: 11
23.05.2017, 22:03  [ТС] 13
__py__, грустно. Если какое-нибудь решение не найдётся, то попытаюсь договориться )
0
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 395
24.05.2017, 00:54 14
можно попробовать зафризить в экзешник еще
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2017, 00:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Python под IIS windows Server
Добрый день! Правильно ли я понимаю (после прочтения интернетов), что самый оптимальный вариант...

Адаптация кода на Python 3.5 под 2.7
Есть необходимость переписать код с версии 3.5 под версию 2.7 для размещения на хосте. Где-то...

Запуск PHP-скрипта из C++ кода под Windows
Доброго времени суток. Необходимость в таком извращении вижу для выполнения такой задачи: есть...

Запуск кода MASM под Windows 7 x64
Понимаю, что эту тему поднимали уже сто раз, но я только начал изучать Ассемблер и вопросов у меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.