pyinstaller和--onefile:不包含.py文件

时间:2020-03-02 22:20:53

标签: python-3.x pyinstaller

我有一个应用程序,我使用带有--onefile标志的pyinstaller分发了它,使它更整洁(即使解压缩也需要一些时间)。

我希望在一个名为user.py的文件中保留一个可供最终用户访问的功能。如果我使用--onefile--exclude-module user运行pyinstaller,则生成的可执行文件似乎无法运行user.py的本地副本。

这可能吗?

在这个问题上我没有任何吸引力,所以我想我会补充一些细节。

例如。我制作了三个文件:

main.py

try:
    from otherfile import getresponse
except ImportError:
    from packagedfile import getresponse

resp = getresponse()
print(resp)

packagedfile.py

def getresponse():
    return "Response in packaged file"

otherfile.py

def getresponse():
    return "Response in other file"

当我对所有三个文件都在同一目录中运行此(python main.py)时,它将打印response in other file。当我使用pyinstaller(pyinstaller main.py)进行编译时,会得到相同的响应。当我使用pyinstaller作为pyinstaller --exclude-module otherfile main.py进行编译,并将otherfile.py放在同一目录中时,会得到相同的响应。当我用pyinstaller --exclude-module otherfile --onefile main.py用pyinstaller编译时,当otherfile.py与.exe文件位于同一目录中时,得到“打包文件中的响应”。

1 个答案:

答案 0 :(得分:0)

您可以尝试:

pyinstaller --exclude-module otherfile --add-data otherfile;. main.py