我试图用pyinstaller创建一个可执行文件,发出类似这样的东西:
pyinstaller -F --add-binary="sometool.exe:." myapp.py
构建工作正常。但是,如果我尝试做类似的事情:
os.popen('sometool.exe')
,错误是找不到的。
那么,我该怎么做?
答案 0 :(得分:0)
根据this问题尝试使用此问题:
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)
而不是在你的应用中:
os.popen(resource_path('sometool.exe'))
这应该有效。我每天都用这个:)
答案 1 :(得分:0)
对于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
或者对于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
官方文档:https://pyinstaller.readthedocs.io/en/stable/usage.html
我花了几个小时来弄清楚如何使用--add-binary
并最终使它工作。查看--add-binary="libcrypto.dll:lib"
,您必须添加:lib
作为后缀。