我在Python中创建了一个简单的Windows程序(使用Pyinstaller转换为.exe),它将自身复制到Program Files中创建的文件夹中。除了一个无法预料的细节之外,该程序工作得很完美,当文件将自身复制到目录时,它会将.exe扩展名替换为.py,这会使文件失效。为什么会这样?
这是一个非常简单的例子来说明问题:
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<header>
<!-- Logo, Search Bar, Categories, and User Profile -->
<a href="index.html"> <img height="64px" width="313px" id="logopic" src="images/logoeg.png"> </a> <!-- LogoPic linking to HomePage -->
<nav>
<ul>
<li><a href="#"> Home |</a></li>
<li><a href="#"> Browse |</a></li>
<li><a href="#"> Categories |</a></li>
<li><a href="#"> Rising</a></li>
</ul>
</nav>
</header>
</body>
使用以下内容将其转换为Pyinstaller中的.exe:
header{
background-color: #00829F;
font-family: system-ui;
color: white;
font-size: 34px;
}
#logopic{
padding-left: 10px;
padding-bottom: 0px;
padding-top: 5px;
}
html, body{
margin: 0px;
padding: 0px;
}
ul {
list-style-type: none;
}
li{
display: inline;
}
a:link{
color: white;
text-decoration: none;
}
a:visited{
color: white;
text-decoration: none;
}
a:hover{
color: white;
text-decoration: none;
}
a:active{
color: white;
text-decoration: none;
}
运行程序时,它将创建.py副本...
答案 0 :(得分:2)
Python是一种解释型语言。 PyInstaller / Py2exe / ...正在压缩所有python模块并添加一个可执行标头以使exe文件可执行。
当你运行exe时,所有python模块都被解压缩到临时目录并从那里执行。
您可以使用sys.executable
来获取exe的路径。更多详细信息docs here。