pyinstaller --add-binary 后如何使用捆绑程序?

Fel*_*ata 6 pyinstaller

我正在尝试使用 pyinstaller 制作可执行文件,方法是发出如下内容:

pyinstaller -F --add-binary="sometool.exe:." myapp.py

构建工作正常。但是,如果我尝试执行以下操作:

os.popen('sometool.exe'),错误是没有找到。

那么,我该怎么做呢?

Jak*_*áha 5

尝试根据这个问题使用它:

def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)
Run Code Online (Sandbox Code Playgroud)

与您的应用程序相比:

os.popen(resource_path('sometool.exe'))
Run Code Online (Sandbox Code Playgroud)

这应该有效。我每天都用这个:)


Fen*_*Liu 5

对于类 Unix 机器

pyinstaller --noconfirm --log-level=WARN \
    --onefile --nowindow \
    --add-data="README:." \
    --add-data="image1.png:img" \
    --add-binary="libfoo.so:lib" \
    --hidden-import=secret1 \
    --hidden-import=secret2 \
    --upx-dir=/usr/local/share/ \
    myscript.spec
Run Code Online (Sandbox Code Playgroud)

或用于 Windows

pyinstaller --noconfirm --log-level=WARN ^
    --onefile --nowindow ^
    --add-data="README;." ^
    --add-data="image1.png;img" ^
    --add-binary="libfoo.so;lib" ^
    --hidden-import=secret1 ^
    --hidden-import=secret2 ^
    --icon=..\MLNMFLCN.ICO ^
    myscript.spec
Run Code Online (Sandbox Code Playgroud)

官方文档:https : //pyinstaller.readthedocs.io/en/stable/usage.html

我花了几个小时来弄清楚如何使用--add-binary并最终让它工作。看--add-binary="libcrypto.dll:lib",你必须添加:lib为后缀。