什么是Python中的sys._MEIPASS

时间:2014-03-18 06:44:47

标签: python-2.7 python-3.x pyinstaller

什么是sys._MEIPASS。这个变量的价值是什么?它的用途是什么?我是一个看起来一个python脚本,但当我在eclipse(pydev)上运行它。它显示错误。

3 个答案:

答案 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