java中的接口是类吗
591
2022-09-01
将Python工程打成可执行文件(python能生成可执行文件吗)
一、Linux环境打包python工程
将程序交付到生产环境(甲方),不想要环境维护者或甲方看到源代码,所以需要将源代码打包成可执行文件
install -y python-setuptools python-dev build-essential
2、下载并安装pyinstaller
在网址下载pyisntaller的包,地址:,下载对应的tar包
cd ${BASE_DIR}#下载所需的release版本tar -xvf pyinstaller-4.10.tar.gz cd pyinstaller-4.10pip3 install wheelpython3 setup.py install如果中间没有报错的话,pyinstaller就安装完成了 验证pyinstaller pyinstaller --version4.10
3、打包python项目源码
PyInstaller 工具的命令语法如下:
pyinstaller 选项 Python 源文件(程序主文件)
举例
## 示例代码]# cat main.py print("hello,world!")pyinstaller -F main.py
编译完成后,会将可执行文件保存到dist目录下
]# tree -L 1 distdist└── main
执行可执行文件
]# ./dist/mainhello,world!
4、打包复杂环境,需修改配置文件然后重新编译
因为" pyinstaller -F 程序主文件.py ”这个打包的方法它只会打包当前目录下的所有py文件,而不会打包config和database两个文件夹,所以此时的可执行文件打包的并不完整,此时该怎么做
这种情况需要修改程序main.spec
# -*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis(['main.py'], pathex=['/app/test'], binaries=[], datas=[], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) dict_database = Tree('/app/test/database',prefix='database')a.datas += dict_databasedict_config = Tree('/app/test/config',prefix='config')a.datas += dict_config pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='main', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, runtime_tmpdir=None, console=True )
重新编译
pyinstaller mian.spec
二、Windows环境打包Python工程
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~