(Pyinstaller)创建.py副本而不是.exe副本

时间:2017-12-27 23:13:26

标签: python pyinstaller

我在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副本...

1 个答案:

答案 0 :(得分:2)

Python是一种解释型语言。 PyInstaller / Py2exe / ...正在压缩所有python模块并添加一个可执行标头以使exe文件可执行。

当你运行exe时,所有python模块都被解压缩到临时目录并从那里执行。

您可以使用sys.executable来获取exe的路径。更多详细信息docs here