【问题标题】:how pyinstaller exe file work on other computers with included filespyinstaller exe 文件如何在包含文件的其他计算机上工作
【发布时间】:2019-07-22 04:10:08
【问题描述】:

我正在尝试使用 pyinstaller 制作一个可执行文件,其中包含适用于任何计算机的文件(json、徽标、驱动程序)。

我已经通过这一行在可执行文件中包含了几个文件 -

pyinstaller.exe --onefile --add-data "jsonfile.json;." --add-data "chromedriver.exe;." --add-data "logo1.ico;." --windowed --icon=logo1.ico script.py

成功但是, 当我在另一台计算机上打开它时,它不起作用。

此外,我从计算机上的当前目录中移动了文件,但也无法正常工作 - 所以与我假设的路径有关。

此代码适用于包含的任何文件的路径 -

def resource_path(relative_path):
    if hasattr(sys, '_MEIPASS'):
        return os.path.join(sys._MEIPASS, relative_path)
    return os.path.join(os.path.abspath("."), relative_path)

向该函数发送我计算机上的路径。 任何想法出了什么问题?

【问题讨论】:

    标签: python selenium pyinstaller


    【解决方案1】:

    4 件事,没有一个能真正解决您的问题,但可能会有所帮助

    1. 将所有资产放在资产子文件夹中
    2. 明确地调出目标 --add-data "data/jsonfile.json;./data/jsonfile.json"
    3. 您可以尝试os.startfile(sys._MEIPASS) 之类的方法打开文件夹并查看它(注意您应该在之后设置睡眠或暂停,因为它会在程序崩溃或关闭时清理文件)
    4. 当你调用资源路径时,确保你用相对路径调用它 resource_path("data/myfile.json")

    【讨论】:

    • 1.这一切都在一个文件夹中。 2. 好的。 3. 应该写在哪里? 4. 是的,就是这样。
    猜你喜欢
    • 2013-08-08
    • 2022-11-06
    • 2021-07-20
    • 2015-02-13
    • 1970-01-01
    • 2012-11-19
    • 2015-10-28
    • 1970-01-01
    • 2019-02-06
    相关资源
    最近更新 更多