什么是sys._MEIPASS。这个变量的价值是什么?它的用途是什么?我是一个看起来一个python脚本,但当我在eclipse(pydev)上运行它。它显示错误。
答案 0 :(得分:9)
sys._MEIPASS是PyInstaller的临时文件夹。有关详细信息,请参阅this question。
答案 1 :(得分:0)
如果要禁用Lint在编辑器(Eclipse,MS-Code,...)中给您的错误,请在行末添加以下注释:
if getattr(sys, 'frozen', False): # Running as compiled
running_dir = sys._MEIPASS + "/files/" # pylint: disable=no-member
solution was from here,如果您要禁用一行代码,而不是所有类型的错误。
答案 2 :(得分:0)
这是pyinstaller创建的路径归因,当您有一些资源文件(例如.bmp .png)要加载到python单个文件捆绑的应用中时,此功能非常有用。
捆绑的应用程序启动时,引导程序会设置
loader.dll
属性并将绝对路径存储到bundle文件夹中#include <iostream> #include <Windows.h> int main() { HINSTANCE hDllInst; hDllInst = LoadLibrary(L"loader.dll"); typedef int(*SUMFUNC)(int a, int b); SUMFUNC dll_sum_fun = (SUMFUNC)GetProcAddress(hDllInst, "get_sum_by_another_dll"); std::cout << dll_sum_fun(1, 2); }
。对于单文件夹捆绑包,这是实现这一目标的途径 夹。对于一个文件包,这是临时文件的路径 引导程序创建的文件夹。
典型用法是:
get_sum_by_another_dll(1,2) = 3
您可能想在这里查看详细信息: https://pyinstaller.readthedocs.io/en/stable/runtime-information.html