当Django或python与Mercurial一起使用时,如何处理pyc文件?

kd4*_*ttc 7 python django mercurial pyc

刚开始使用Mercurial.哇,很好的应用程序.我将数据库文件移出代码目录,但我想知道这些.pyc文件.我没有在初始提交中包含它们.有关该.hgignore文件的文档包含一个要排除的示例*.pyc,因此我认为我的方向正确.

我想知道当我决定回滚到旧的文件集时会发生什么.我需要删除所有.pyc文件吗?我在Stack Overflow上看到了一些关于这个问题的问题,包括一位发现旧.pyc文件被使用的绅士.这个的标准方法是什么?

Jer*_*dis 14

正如ms4py的回答中所提到的,*.pyc是将在运行中重新生成的已编译文件.分发项目时,您不希望包含这些内容.

但是,如果它发生了你在回滚更改之前存在的模块,并且*.pyc文件处于遗留状态,则可能会出现奇怪的错误,因为即使原始python文件不再存在也可以执行pyc文件.当在项目中添加和删除应用程序并使用git切换分支时,这在Django中咬了几次.

要清理,可以通过在项目目录中运行以下shell命令来删除项目目录中的每个编译文件:

find . -name '*.pyc' -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

  • 大多数`find`也支持`-delete`而不是`-exec rm {} \;`. (8认同)

sch*_*mar 5

通常您是安全的,因为*.pyc如果相应的*.py更改其内容,则重新生成.

如果删除*.py文件并且仍在其他文件中导入文件,则会出现问题.在这种情况下,*.pyc如果文件存在,则从文件导入.但这将是您的代码中的错误,并不是与您的mercurial工作流程真正相关.

结论:每个着名的Python库都忽略了他们的*.pyc文件,就这样做;)