我在Python中分叉了一个GitHub项目。在第一次运行项目后,一些.pyc文件出现在里面。我应该将它们置于版本控制之下并将它们提交给我的分支吗?
答案 0 :(得分:16)
你不应该。 .pyc
个文件包含字节码,对于不同版本和Python的实现可能会有所不同。
只需在*.pyc
或全局.gitignore
中添加gitignore
行。
另请查看几乎所有平台的great collection of gitignore文件。你可以将这个用于你的python项目:
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
# Translations
*.mo
*.pot
# Django stuff:
*.log
# Sphinx documentation
docs/_build/
# PyBuilder
target/
答案 1 :(得分:7)
这些文件是compiled versions of the code already in the repo,因此Python可以更快地执行代码。因为它们是实际源代码的直接计算结果,所以检查它们没有任何好处 - 它们只需要在每次更新源代码时进行更新。此外,我无法保证(据我所知)不同的机器或Python版本会生成兼容的.pyc
文件,这意味着分发您生成的.pyc
文件可能会破坏其他人的环境。
相反,您可以修复.gitignore
文件以忽略.pyc
个文件并将 提交到您的分支(甚至返回上游代理)。这样,将来没有人会注意到或者需要担心这些文件。
答案 2 :(得分:2)
该文件没有任何不妥之处,但它是无用的垃圾,它只是为了加快python应用程序的执行速度,并且每次进行更改时都会重建它,所以它会随着时间的推移而增长,要解决此问题,您可能需要在__pycache__
文件中添加.gitignore
行
答案 3 :(得分:1)
没有。您必须不在版本控制
下放置 pyc通用规则是"永远不要将构建工件放入源代码控制中,因为源控件中有源代码,并且必须重复进程"
PYC是相应PY文件的伪像