我有一个应用程序,我使用带有--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文件位于同一目录中时,得到“打包文件中的响应”。
答案 0 :(得分:0)
您可以尝试:
pyinstaller --exclude-module otherfile --add-data otherfile;. main.py