如何解决:python:Can't reopen .pyc file

Posted 卢大鸽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决: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

以上是关于如何解决:python:Can't reopen .pyc file的主要内容,如果未能解决你的问题,请参考以下文章

python命令行运行django项目, can't open file 'manage.py' 问题解决

[python]UnicodeEncodeError: 'gbk' codec can't encode character 解决方法

python报错问题解决:'ascii' codec can't encode character

python编码问题——解决python3 UnicodeEncodeError: 'gbk' codec can't encode character 'xXX&#(

解决windows环境中python2.7'ascii' codec can't encode character

python mysql数据库 'latin-1' codec can't encode character错误问题解决