Ho biforcato un progetto GitHub in Python. Dopo aver eseguito il progetto per la prima volta, alcuni file .pyc apparivano all'interno. Devo metterli sotto il controllo della versione e li impegna nella mia forcella?Devo mettere i file pyc sotto controllo di versione?
risposta
Questi file sono compiled versions of the code already in the repo, in modo che Python possa eseguire il codice più velocemente. Dal momento che sono un risultato computazionale diretto del codice sorgente reale, non c'è alcun vantaggio nel controllarli - devono solo essere aggiornati ogni volta che il codice sorgente è stato aggiornato. Inoltre, non c'è alcuna garanzia (a mia conoscenza) che diverse macchine o versioni di Python generino file compatibili .pyc
, il che significa che la distribuzione dei file .pyc
generati potrebbe potenzialmente violare gli ambienti di altre persone.
Invece si potrebbe correggere il file .gitignore
di ignorare .pyc
file e impegnarsi che per la forcella (o anche indietro al pronti contro termine a monte). In questo modo nessuno noterà o dovrà preoccuparsi di questi file in futuro.
Non c'è niente di male nel file, ma è inutile spazzatura, serve solo a velocizzare l'esecuzione delle applicazioni Python, e viene ricostruito ogni volta che si apportano modifiche, quindi crescerà nel tempo, per risolverlo potrebbe voler aggiungere la riga __pycache__
al file .gitignore
Non necessario.
Ci sono file great collection of gitignore per quasi tutte le piattaforme. È possibile utilizzare questo uno per i vostri progetti di pitone:
# 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/
Personalmente, preferirei di gran lunga ignorare i file in base alle necessità piuttosto che archiviare una serie di pattern di ignoranza che non vengono effettivamente utilizzati. – dimo414
No. necessario non mettere pyc sotto controllo delle versioni
regola comune è "Mai messo build-arifacts in controllo del codice sorgente, perché si disporre di fonti in fonte di controllo e può | devono ripetere processo"
PYCs sono tali manufatti per corrispondenti file PY
NO! ............ –
No, sono versioni "byte compilate" dello stesso codice. Vedi http://stackoverflow.com/questions/3878479/python-pyc-files-main-file-not-compiled –
La maggior parte delle fonti suggerisce di non farlo, in quanto può creare lavoro extra prima di impegnarsi e spesso si traduce nell'impegno di nuovi codice sorgente, ma vecchio codice compilato. [fonte 1] (http://programmers.stackexchange.com/questions/192113/do-i-check-generated-code-in-to-source-control-or-not), [fonte 2] (http : //stackoverflow.com/questions/893913/should-i-store-generated-code-in-source-control) – Addison