【问题标题】:python: Is there a way in python to delete the old .pyc before running the filepython:python中有没有办法在运行文件之前删除旧的.pyc
【发布时间】:2012-09-24 15:52:21
【问题描述】:

似乎有时当我从 git 中拉出旧的 .pyc 而不是新拉出的 .py 文件时,有没有办法自动清除 .pyc 文件,所以它总是运行新版本?

【问题讨论】:

    标签: python python-2.7 pyc


    【解决方案1】:

    如果.py 文件上的修改日期较新,Python 会自动清除旧的.pyc

    您可以手动删除目录结构中的所有 .pyc 文件:

    find . -name \*.pyc -delete
    

    Python 将在导入模块时重新创建它们。你也可以运行:

    python -m compileall .
    

    强制编译。

    【讨论】:

    • 我没有提交它们,我不知道 git 是如何为文件计时的
    • 啊,我明白了;您从 git 中提取 older .py 文件,因此使用较新的 .pyc 文件而不是更改的源。
    • 似乎是他们拉的时间,我不知道发生时我做错了什么
    • 是的,git设置修改时间为commit的时间;另一方面,您的 .pyc 文件与编译时 .py 文件的修改时间相匹配。如果修改.py 文件,运行python,然后回滚到旧版本的.py 文件,.pyc 文件不一定会更新。
    • 很难调查事后发生的事情,最好应用解决方案,+1 并接受答案,
    【解决方案2】:

    防止.pyc 文件创建的另一个选项是将选项-B 传递给python

    python -B file.py
    

    -B 来自man 的选项:

    -B     Don't write .py[co] files on import. See also PYTHONDONTWRITEBYTECODE.
    

    您也可以在.py 文件的开头使用sha-bang 指定它:

    #!/bin/python -B 
    

    【讨论】:

      猜你喜欢
      • 2013-07-17
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      相关资源
      最近更新 更多