二、如何解决: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

posted @ 2020-03-20 11:53  卢大鸽  阅读(2173)  评论(0编辑  收藏  举报