Python 与PyInstaller捆绑包相关的本地文件

Python 与PyInstaller捆绑包相关的本地文件,python,local,pyinstaller,Python,Local,Pyinstaller,我正在构建一个小应用程序,将加载到用户的机器上,它需要在与包相同的目录中查找特定的mp3文件。这些mp3文件不会与py文件绑定,因此我不需要sys.\u MEIPASS路径,只需要绑定本身的系统路径 或者,如果我用错误的方式思考这个问题,请给出建议。我不熟悉以这种方式构建应用程序。我们需要一个小应用程序来修改特定的mp3 id3标签的用户。MP3将安装在本地计算机或usb驱动器上。我的想法是把脚本放到MP3所在的地方,然后运行它 顺便说一下,这就是我尝试过的 if getattr(sys

我正在构建一个小应用程序,将加载到用户的机器上,它需要在与包相同的目录中查找特定的mp3文件。这些mp3文件不会与py文件绑定,因此我不需要sys.\u MEIPASS路径,只需要绑定本身的系统路径

或者,如果我用错误的方式思考这个问题,请给出建议。我不熟悉以这种方式构建应用程序。我们需要一个小应用程序来修改特定的mp3 id3标签的用户。MP3将安装在本地计算机或usb驱动器上。我的想法是把脚本放到MP3所在的地方,然后运行它

顺便说一下,这就是我尝试过的

    if getattr(sys, 'frozen', False):
        basedir = sys._MEIPASS
    else:
        basedir = os.path.dirname(os.path.abspath(__file__))

    mp3path = basedir + "/test.mp3"
当我在构建之前进行测试时,它为我提供了正确的路径:

    /Users/name/path/to/file/test.mp3
当我运行包时,mp3路径是:

    /var/folders/d8/67z60y2x7c73kk_m0w50w2pr0000gp/T/_MEI9qySOb/test.mp3
当我只使用
\uuuuu文件中的dirname时,路径就是我的用户文件夹

    /Users/name/test.mp3

这将回答您关于相对路径的问题:,但不是关于与PyInstaller捆绑的问题。谢谢,但这些在作为应用程序运行时不起作用。好的,对不起,我不熟悉PyInstaller。但是,请注意,本手册中也提到了这种方法。您确定
您的\u脚本。\uu文件\uu
不会返回任何有用的内容吗?是的,这也是我找到的答案,但不幸的是,它没有帮助。谢谢你@Mefitico,不,我从来没有让它按我所希望的方式工作过。这回答了你关于相对路径的问题:,但不是关于与PyInstaller捆绑的问题。谢谢,但这些在作为应用程序运行时不起作用。好的,抱歉,我不熟悉PyInstaller。但是,请注意,本手册中也提到了这种方法。您确定
您的\u脚本。\uu文件\uu
不会返回任何有用的内容吗?是的,这也是我找到的答案,但不幸的是,它没有帮助。谢谢你@梅菲蒂科,不,我从来没有让它按我想要的方式工作过。