wer*_*ika 18 python bytecode pyc
偶尔我会遇到一个非常难以调试的问题:在我的$ PYTHONPATH中有一个剩余的.pyc文件,并且匹配的.py文件已被移动到稍后在$ PYTHONPATH的其他地方 - 所以当我尝试要导入模块,使用"孤立".pyc文件,并且忽略对"真实".py文件的所有更改,让我感到非常困惑,直到我发现正在发生的事情.
有没有办法使python 不使用"孤立".pyc文件,或在使用它们时打印警告?
或者,我有这个问题的事实是否意味着我做错了什么,如果是的话,那是什么?
你不能阻止Python加载.pyc文件,如果它在路径中找到它们,没有.
你有几个选择:
导入违规模块并找出它的路径:
>>> import borkenmod
>>> import sys
>>> sys.modules[borkenmod.__name__].__file__
'lib/python2.7/borkenmod.pyc'
Run Code Online (Sandbox Code Playgroud)使用脚本遍历PYTHONPATH并删除过时的字节码文件.链接脚本将删除没有相应文件的所有 .pyc文件.py.
擦除PYTHONPATH中的所有.pyc文件,让Python使用compileall模块重新生成它们:
python -m compileall [path]
Run Code Online (Sandbox Code Playgroud)
然后删除那个文件.
请注意,最后两个选项可能会导致删除合法的python模块!一些python模块(特别是商业许可的)仅作为编译的字节码分发.
| 归档时间: |
|
| 查看次数: |
2706 次 |
| 最近记录: |