我是Python的新手。目前,我正在从事与土木工程有关的项目,其中输入一些有关材料,内力等的值,然后代码计算出角蛋白横截面的电阻,其利用率等。我有它在VSCode中工作,但无法制作.exe文件。任何帮助都是令人感激的,并得到了广泛的应用。
我尝试了pyinstaller,但没有成功。编译文件后,当我运行.exe时,我得到的只是黑屏
这是有问题的代码
import numpy as np
import csv
import matplotlib.pyplot as plt
# Input for calcualation
fy = float(input("Steel yield strength [kN/cm^2] fy = "))
fu = float(input("Steel tensile strenth [kN/cm^2] fu = "))
E = float(input("Steel modulus of elasticity [kN/cm^2] E = "))
NEd = float(input("Compression force [kN] NEd = "))
Lcry = float(input("Buckling length around y (stronger) axis [cm] = "))
Lcrz = float(input("Buckling length around z (weaker) axis [cm] = "))
data = []
with open('HEA.csv', 'r', newline='') as csv_data:
csv_read = csv.reader(csv_data)
reader = next(csv_read)
for row in csv_read:
name = int(row[0])
h = float(row[1])
b = float(row[2])
tw = float(row[3])
tf = float(row[4])
r = float(row[5])
d = float(row[6])
A = float(row[7])
G = float(row[8])
Iy = float(row[9])
Wyel = float(row[10])
Wypl = float(row[11])
iy = float(row[12])
Iz = float(row[13])
Wzel = float(row[14])
Wzpl = float(row[15])
iz = float(row[16])
It = float(row[17])
Iw = float(row[18])
data.append([name, h, b, tw, tf, r, d, A, G, Iy, Wyel, Wypl, iy, Iz, Wzel, Wzpl, iz, It, Iw])
data = np.asarray(data)
data = np.transpose(data)
name = data[0]
h = data[1]
b = data[2]
tw = data[3]
tf = data[4]
r = data[5]
d = data[6]
A = data[7]
G = data[8]
Iy = data[9]
Wyel = data[10]
Wypl = data[11]
iy = data[12]
Iz = data[13]
Wzel = data[14]
Wzpl = data[15]
iz = data[16]
It = data[17]
alpy = 0.34
Ncry = ((np.pi**2 * E * Iy)/(Lcry**2))
print(Ncry)
# Nondimensional slednerness
ldy = np.sqrt(((A*fy)/Ncry))
print(ldy)
# auxiliary value
phiy = 0.5*(1+alpy*(ldy-0.2)+ldy**2)
print(phiy)
hiy = 1/(phiy+np.sqrt(phiy**2-ldy**2))
if hiy.all() > 1:
hiy = 1
hiy = hiy
print(hiy)
NbRd = (hiy*21.24*fy)/1.10
print("Resistance to compression", NbRd)
if NEd/NbRd.all() <= 1:
print("Resistance is satisfied")
print("Resistance is not satisfied")
ratio = (NEd/NbRd)*100
print(ratio)
plt.plot([name], [ratio], 'ro')
plt.show()
答案 0 :(得分:0)
这里有几点:
1-为什么要使其成为可执行文件?
您不能只为您的用户分发python代码吗?如果他们都是工程师,那应该会更容易。
2-如果绝对从一开始就需要使其成为可执行文件:
如果您绝对需要可以在任何计算机上运行的软件,则python和pyinstaller可能不是您最好的朋友。
您可以将其设置为网络应用,并通过使用django之类的工具在导航器上运行。
如果它很复杂,计算量很大,但是运行速度很快,也许您应该考虑使用C ++。
3-底线
Pyinstaller实际创建可执行文件需要大量工作,在执行该可执行文件并创建将与其捆绑在一起的代码时,需要考虑很多注意事项。
但是在这里the documentation处阅读问题,特别是使用--debug=all
选项将使您的可执行文件慢慢成形。