Подтвердить что ты не робот

Должен ли я ставить файлы pyc под контроль версий?

Я разработал проект GitHub в Python. После запуска проекта в первый раз появились некоторые .pyc файлы. Должен ли я поставить их под контроль версий и передать их своей вилке?

4b9b3361

Ответ 1

Эти файлы скомпилированные версии кода уже в репо, так что Python может быстрее выполнять код. Поскольку они являются прямым вычислительным результатом фактического исходного кода, нет никакой пользы для их проверки - они просто должны обновляться каждый раз, когда исходный код обновляется. Кроме того, нет никаких гарантий (насколько мне известно), что разные машины или версии Python будут генерировать совместимые файлы .pyc, то есть распространение файлов .pyc, которые вы создали, может потенциально нарушить среду других людей.

Вместо этого вы можете исправить файл .gitignore, чтобы игнорировать файлы .pyc и передать это своей вилке (или даже вернуться к восходящему репо). Таким образом, никто не заметит и не должен беспокоиться об этих файлах в будущем.

Ответ 2

Не нужно этого делать.

отличная коллекция 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/

Ответ 3

В файле нет ничего плохого, но это бесполезный мусор, он там только для ускорения выполнения приложения python, и он перестраивается каждый раз, когда вы вносите изменения, поэтому он будет расти со временем, чтобы исправить его, вы можете хотите добавить строку __pycache__ в ваш .gitignore файл

Ответ 4

Нет. Вы не должны ставить pyc при управлении версиями

Общее правило: "Никогда не помещайте build-arifacts в исходный элемент управления, потому что у вас есть источники в исходном управлении и вы можете повторить процесс"

PYC являются такими артефактами для соответствующих файлов PY