2015-08-20 6 views
11

मैंने पायथन में एक गिटहब परियोजना को फोर्क किया। प्रोजेक्ट को पहली बार चलाने के बाद, कुछ .pyc फ़ाइलें अंदर दिखाई दीं। क्या मुझे उन्हें संस्करण नियंत्रण में रखना चाहिए और उन्हें अपने कांटे में ले जाना चाहिए?क्या मुझे पीईसी फाइलों को संस्करण नियंत्रण में रखना चाहिए?

+4

नहीं इसी के लिए "यह प्रक्रिया दोहरानी पड़

PYCs ऐसी कलाकृतियों कर रहे हैं! ............ –

+2

नहीं, यह एक ही कोड के "बाइट संकलित" संस्करण है। Http://stackoverflow.com/questions/3878479/python-pyc-files-main-file-not-compiled –

+0

अधिकांश स्रोत यह नहीं बताते हैं कि यह करने से पहले अतिरिक्त कार्य कर सकता है, और अक्सर नए होने के परिणामस्वरूप स्रोत कोड, लेकिन पुराने संकलित कोड। [स्रोत 1] (http://programmers.stackexchange.com/questions/192113/do-i-check-generated-code-in-to-ource-control-or-not), [स्रोत 2] (http : //stackoverflow.com/questions/893913/should-i-store- जनरेटेड-code-in-source-control) – Addison

उत्तर

5

ये फ़ाइलें compiled versions of the code already in the repo हैं, ताकि पायथन कोड को तेज़ी से निष्पादित कर सके। चूंकि वे वास्तविक स्रोत कोड का सीधा कम्प्यूटेशनल परिणाम हैं, इन्हें जांचने के लिए कोई लाभ नहीं है - उन्हें स्रोत कोड अपडेट होने पर हर बार अपडेट होने की आवश्यकता होगी। इसके अलावा, मेरे पास कोई गारंटी नहीं है (मेरे ज्ञान के लिए) कि पाइथन की विभिन्न मशीनें या संस्करण संगत .pyc फाइलें उत्पन्न करेंगे, जिसका अर्थ है कि आपके द्वारा उत्पन्न .pyc फ़ाइलों को वितरित करने से संभावित रूप से अन्य लोगों के वातावरण तोड़ सकते हैं।

इसके बजाय आप .pyc फ़ाइलों की अनदेखी करने के .gitignore फ़ाइल को ठीक करके प्रतिबद्ध सकता है कि आपके कांटा (या यहां तक ​​वापस नदी के ऊपर रेपो करने के लिए) के लिए। इस तरह कोई भी भविष्य में इन फ़ाइलों के बारे में चिंता करने या चिंता करने की आवश्यकता नहीं होगी।

1

फ़ाइल के बारे में कुछ भी बुरा नहीं है, लेकिन यह बेकार जंक है, यह केवल पायथन एप्लिकेशन निष्पादन को गति देने के लिए है, और हर बार जब आप परिवर्तन करते हैं तो इसे पुनर्निर्मित किया जाता है, इसलिए यह समय के साथ बढ़ जाएगा, इसे ठीक करने के लिए __pycache__ लाइन .gitignore फ़ाइल

5

को ऐसा करने के लिए आवश्यक नहीं हो सकता है।

लगभग सभी प्लेटफार्मों के लिए great collection of gitignore फ़ाइलें हैं। आप अपने अजगर परियोजनाओं के लिए इस एक का उपयोग कर सकते हैं:

# 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/ 
+0

व्यक्तिगत रूप से, मैं वास्तव में उपयोग नहीं किए जाने वाले अनदेखा पैटर्न के समूह में जांच करने के लिए आवश्यक फ़ाइलों को अनदेखा करना पसंद करूंगा। – dimo414

1

नहीं, आप चाहिए स्रोत नियंत्रण में

आम नियम है "कभी नहीं डाल निर्माण arifacts संस्करण-नियंत्रण में pyc डाल नहीं है, क्योंकि आप स्रोत नियंत्रण में स्रोत हैं और कर सकते हैं | PY फ़ाइलों

संबंधित मुद्दे

 संबंधित मुद्दे