吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2596|回复: 12
收起左侧

[求助] python 用marshal后 运行py正常,编译后exe文件提示importError

[复制链接]
kge369 发表于 2019-7-1 10:57
创建一个52pojie.py文件,里面是

[Python] 纯文本查看 复制代码
from __future__ import unicode_literals
from concurrent.futures import ThreadPoolExecutor
import re
import sys
s =  "hello/world"
new_s = re.split('/',s)
print(new_s)



首先是  python -m py_compile 52pojie.py 成52pojie.pyc



然后把52pojie.pyc文件seek(8),再经过marshal 的load 和dumps,转换成scrambled_code
[Python] 纯文本查看 复制代码
fd = open(r'.\52pojie.pyc', 'rb')
fd.seek(8)
import marshal
co = marshal.load(fd)
fd.close()
code_string = marshal.dumps(co)
scrambled_code = code_string.encode('zlib').encode('base64')
print scrambled_code 



把prin出来的字符串eJxFT8tOwzAQHCdNCNBD1B/gmlMrirgghDiA4IRQ4UIUyariRU3lxpUfKj3z4bBOi1jbo9nZ9Xjd
4hgpn3skcB9MFG8BDWwEagER8wQ6wSZFnR7yFHqEeoQjz1BnUKzkoBHWJ1AZKMd3groAFXh65q63
Kmf37oejEsx8yRD6rjWKpO482aV2h8qE4X1laalejdGPX9QGb+xLOGd9RVqb2c5YrUJsnlWn8coZ
g5SfwQdLUi7wZ9Oavg3WUu+nh6JbDE8kDJZ8/LnbOx8157OIW55lYD3tpKui0z+4C4aHm+ZyftVs
935l+sYPgzbX861ZdzRlteCe241RQdPdYDxmKEUpxrxyMRG/7VFOuQ==
,创建新的new_52pojie.py文件,里面是


[Python] 纯文本查看 复制代码
scrambled_code_string='''eJxFT8tOwzAQHCdNCNBD1B/gmlMrirgghDiA4IRQ4UIUyariRU3lxpUfKj3z4bBOi1jbo9nZ9Xjd
4hgpn3skcB9MFG8BDWwEagER8wQ6wSZFnR7yFHqEeoQjz1BnUKzkoBHWJ1AZKMd3groAFXh65q63
Kmf37oejEsx8yRD6rjWKpO482aV2h8qE4X1laalejdGPX9QGb+xLOGd9RVqb2c5YrUJsnlWn8coZ
g5SfwQdLUi7wZ9Oavg3WUu+nh6JbDE8kDJZ8/LnbOx8157OIW55lYD3tpKui0z+4C4aHm+ZyftVs
935l+sYPgzbX861ZdzRlteCe241RQdPdYDxmKEUpxrxyMRG/7VFOuQ=='''
exec __import__('marshal').loads(scrambled_code_string.decode('base64').decode('zlib'))



以上的方法是百度找到的。


运行new_52pojie.py文件,可以打印[u'hello', u'world']


但是编译成.exe文件,就提示import Error No module named  concurrent.futures

把from 开头的这2条注释掉,再编译,是能正常运行exe文件的,求助,如果需要concurrent.futures,怎么不提示错误呢



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ixsec 发表于 2019-7-1 12:06
编译exe  为何不用  pyinstaller 打包成exe
冥界3大法王 发表于 2019-7-1 12:18
ixsec 发表于 2019-7-1 12:06
编译exe  为何不用  pyinstaller 打包成exe


因为那个生成的文件大了 7倍 ,不信你试试。
[Asm] 纯文本查看 复制代码
1.安装pyinstaller
cmd命令行下
cd /d E:\Python37\Scripts
pip install pyinstaller
2.安装pywin32, 下载对应的版本:
[url]https://nchc.dl.sourceforge.net/project/pywin32/pywin32/Build%20221/pywin32-221.win-amd64-py3.7.exe[/url]

准备工作已经完成,接下来回到命令提示符,转到你的python的scripts目录下输入
pyinstaller  -F  d:\python\login.py

其中-F为参数,可以写多个,如pyinstaller.py -F -w  C:\python\login.py
参数	含义
-F	指定打包后只生成一个exe格式的文件
-D	–onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-c	–console, –nowindowed 使用控制台,无界面(默认)
-w	–windowed, –noconsole 使用窗口,无控制台
-p	添加搜索路径,让其找到对应的库。
-i	改变生成程序的icon图标
D:\python\login.py为你所要转换的文件的路径及文件名,也可以把py文件放在python路径下的scripts路径下,
这样就可以省略路径,直接写文件名login.py
等待运行结束,若没有错误,EXE文件会创建在python安装路径的Scripts文件夹中的dist文件夹内,如D:\python\Scripts\dist。
此时就可以直接运行EXE文件了
[url]https://blog.csdn.net/yufen9987/article/details/73865281/[/url]
 楼主| kge369 发表于 2019-7-1 12:18
ixsec 发表于 2019-7-1 12:06
编译exe  为何不用  pyinstaller 打包成exe

这个pyinstaller打包成exe,和编译成exe,是一个意思吧,我百度python 编译exe的话,就是pyinstaller和另外一个
 楼主| kge369 发表于 2019-7-1 12:31
冥界3大法王 发表于 2019-7-1 12:18
ixsec 发表于 2019-7-1 12:06
编译exe  为何不用  pyinstaller 打包成exe

编译和pyinstaller打包,是有区别的???不过我的问题是另外一个
ixsec 发表于 2019-7-1 13:34
kge369 发表于 2019-7-1 12:31
编译和pyinstaller打包,是有区别的???不过我的问题是另外一个

不晓得什么问题 我用python 3.7.3 运行你的代码各种出错。。。。。
 楼主| kge369 发表于 2019-7-1 13:37
ixsec 发表于 2019-7-1 13:34
不晓得什么问题 我用python 3.7.3 运行你的代码各种出错。。。。。

忘了第一个是import的话,需要先pip
ixsec 发表于 2019-7-1 13:41
kge369 发表于 2019-7-1 13:37
忘了第一个是import的话,需要先pip

[Python] 纯文本查看 复制代码
fd = open(r'.\52pojie.pyc', 'rb')
fd.seek(8)
import marshal
co = marshal.load(fd)
fd.close()
code_string = marshal.dumps(co)
scrambled_code = code_string.encode('zlib').encode('base64')
print scrambled_code


这个 一直出错~~ 各种错误都有。。
ixsec 发表于 2019-7-1 13:44
ValueError: bad marshal data (unknown type code)   头大。。。。
 楼主| kge369 发表于 2019-7-1 14:02
本帖最后由 kge369 于 2019-7-1 14:05 编辑
ixsec 发表于 2019-7-1 13:44
ValueError: bad marshal data (unknown type code)   头大。。。。

哎,我不知道什么时候把fd.seek(8) 给弄没了,在import之前,有行这个,没有检查仔细,我上面的描述是有seek的,晕倒
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 04:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表