python包-pyminifier

对 python 代码进行混淆处理。

安装包如下,这个包应该是不再更新了,所以最新版本的 python 无法安装,我之前在 3.10.5 和 3.9.5 版本中都能安装,3.13版本就不行。

1
2
# 安装
pip install pyminifier

运行命令如下

1
2
# 生成文本混淆文件
pyminifier --obfuscate in.py > obfuscated.py

可能的报错

中文问题

代码有中文会报错,应该默认是 GBK 编码。我怎么弄都不行,还是只能去除中文字符。

代码本身语法问题

如果提示以下类似报错,这个错误是表示在解析 in.py文件时遇到了语法错误。错误信息 EOF in multi-line statement表明有一个多行语句(如括号、引号、三引号等)没有正确闭合,导致Python解析器在文件末尾还在等待闭合符号。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ pyminifier --obfuscate in.py > obfuscated.py
Traceback (most recent call last):
File "D:\software\python\Scripts\pyminifier-script.py", line 33, in <module>
sys.exit(load_entry_point('pyminifier==2.1', 'console_scripts', 'pyminifier')())
File "D:\software\python\lib\site-packages\pyminifier\pyminifier.py", line 396, in main
tokens = token_utils.listified_tokenizer(source)
File "D:\software\python\lib\site-packages\pyminifier\token_utils.py", line 42, in listified_tokenizer
return [list(a) for a in tokenize.generate_tokens(io_obj.readline)]
File "D:\software\python\lib\site-packages\pyminifier\token_utils.py", line 42, in <listcomp>
return [list(a) for a in tokenize.generate_tokens(io_obj.readline)]
File "D:\software\python\lib\tokenize.py", line 523, in _tokenize
raise TokenError("EOF in multi-line statement", (lnum, 0))
tokenize.TokenError: ('EOF in multi-line statement', (829, 0))

此时可以用下面代码检查python代码语法问题

1
2
# 检查文件语法
python -m py_compile in.py

不能处理复杂代码

我处理了一个逻辑比较复杂的代码,结果生成的文件把正文所有代码都放在了一行,完全不能用,不清楚原因。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2026 Vincere Zhou
  • 访问人数: | 浏览次数:

请我喝杯茶吧~

支付宝
微信