如何使用仅由pyc文件组成的PyPy2运行Python包?
使用CPython2,我可以使用python.exe -c“ import mypackage”编译我的Python源代码包. 使用CPython3,我可以使用python.exe -m compileall -b“ full / path / to / mypackage”来编译我的Python源代码pyckage. 甚至可以以完全相同的方式使用PyPy3完成此操作. 出人意料的是,在使用PyPy2时,此操作无效! 编译并删除源文件后,我得到以下输出:
有解决此问题的方法吗? 我怎样才能告诉PyPy2像CPython2一样看* .pyc文件? 欢迎每一个建设性的贡献! 最佳答案
如您所见,PyPy2拒绝加载单独的.pyc文件,即删除.py文件后仍然存在的.pyc文件. PyPy3的行为类似于CPython.
PyPy2的当前状态反映了PyPy开发人员对CPython细节的烦恼.在PyPy的开发过程中,它经常咬我们,以至于无法忽视.我们的观点是,当您通常在开发任何东西时,删除或重命名.py文件后,如果忘记修复或摆脱其他文件中的import语句,则希望看到崩溃.取而代之的是,您会看到导入仍然有效,并且针对这些不相关文件的所有测试仍然通过,因为它们仍然使用相同的旧逻辑.因此,您认为已经完成并检入了版本控制系统中的文件-但当然是错误的. 出于这个原因,我们尽早决定CPython的这种行为对我们来说更像是一个错误,并且默认情况下没有在PyPy2中重现它.如果确实需要此行为,则需要通过传递–lonepycfile标志来重新转换PyPy2. PyPy3后来出现了,它带有自己的importlib系统,使用纯Python,我们没有接触过. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |