二、如何解决:python:Can't reopen .pyc file
如何解决:python:Can't reopen .pyc file
pyc文件是python在编译过程中出现的主要中间过程文件。pyc文件以二进制形式存在,可以由python虚拟机直接执行的程序。通过生成.pyc文件可以提高程序运行的速度,编译过的.pyc程序代码也相当于转换了源代码,提高源码加密性。当然了,反编译还是存在的,但是还是可以一定程度上对程序进行包装,反编译程序也费时费力,工作量大。
我们可以使用如下格式运行*.py文件来生成*.pyc文件(*为文件名;path文根目录路径):
python -m py_compile path/*.py
C#调用Python的方法不变,我们替换掉原有的.py文件,对.pyc文件进行调用。程序无反馈,输出流数据无获取。
python.exe打不开.pyc文件?为了验证这点,我们通过CMD命令行验证一下。
从上图可以看出,python.exe直接打开.py文件正常,打开编译过的.pyc报错,错误原因:python: Can't reopen .pyc file
这个就奇怪了,从原理上讲,直接运行.pyc程序是没有问题了。用度娘查找了一些资料,一度怀疑是生成的.pyc文件有问题。
最后,在偶然的情况下试着直接锁定到文件根目录,没问题了。
想起来有可能是存在中文的路径的问题,试着把文件放在桌面,没问题 (┬_┬),再新建个新建文件夹放置文件,果然又有问题了。
总结:C#调用py文件路径给的存在中文没问题,但是.pyc文件路径有中文就会报错。有点意思,以后尽量少用中文命名。
———————————————————————————————————————————
pyc文件详细说明可以参考:https://www.cnblogs.com/blili/p/11799483.html
反编译可以参考:https://www.cnblogs.com/blili/p/11804517.html