使用Pyinstaller将运行bash脚本的python脚本转换为可执行文件

dm7nw8vv  于 2022-11-27  发布在  Python
关注(0)|答案(1)|浏览(164)

我想用Pyinstaller将运行本地bash脚本的python脚本转换为可执行文件。
我的项目结构如下:

Project/
|-- bash_script/
|   |-- script.sh
|-- main.py

main.py包含在本地运行脚本的行:

output = subprocess.check_output('./bash_script/script.sh', shell=True).decode()

现在,在将www.example.com转换main.py为linux中的可执行文件后,如果我在与main.py所在位置不同的位置运行它,它将找不到脚本。
我想把shell脚本添加到python可执行文件中,这样它就不会在本地依赖于脚本,但是,我将只拥有可执行文件,它最终会运行。
我试过使用--add-data标志来转换命令,但是没有成功。
谢谢你!
注意:我使用的是以下命令:
pyinstaller --add-data "./bash_script/script.sh:." --onefile main.py
在dist dir中运行后出现错误:

/bin/sh: 1: ./bash_script/script.sh: not found
webghufk

webghufk1#

在您的main.py中:

import subprocess
import os

script = os.path.join(os.path.dirname(__file__),'bash_script','script.sh')
output = subprocess.check_output(script, shell=True).decode()
print(output)

然后运行:

pyinstaller -F --add-data ./bash_script/script.sh:./bash_script main.py

还有波波你叔叔!
此外,-F--onefile相同

相关问题