देखें आप वास्तव में उन्हें छोड़ सकता है - वे या तो उत्पन्न कर रहे हैं (यदि आप लेखन पहुँच है), या .py
हर बार जब आप इसे आयात (जो उस समय की लागत) पार्स किया गया है।
लेकिन, अपनी वितरण पर निर्भर करता है, अपने आरपीएम प्रणाली .py
फ़ाइलें संकलन के लिए आसान स्क्रिप्त वाले और वितरण, जो कार्य काफी आसान बना देता है पर .pyo
और .pyc
फ़ाइलों बंडल हो सकता है।
$ rpm --showrc | grep -A 7 py.*_compile
-14: py3_compile(O)
find %1 -name '*.pyc' -exec rm -f {} ";"
python3 -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1
%{-O:
find %1 -name '*.pyo' -exec rm -f {} ";"
python3 -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1
}
-14: py3_incdir /usr/include/python3.3m
--
-14: py_compile(O)
find %1 -name '*.pyc' -exec rm -f {} \;
python -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1
%{-O:
find %1 -name '*.pyo' -exec rm -f {} \;
python -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1
}
-14: py_incdir %{py_prefix}/include/python%{py_ver}
I. ई।, आप %py_compile
resp डाल डाल सकते हैं। %py3_compile
अपने %build
सेक्शन में और आपके पास जो चाहिए वह आपके पास है।
लेकिन, जैसा कि कहा गया है, आप उन्हें छोड़ सकते हैं अगर आप उन्हें विभिन्न संस्करण संख्याओं के कई पायथन इंस्टॉलेशन से उपयोग करना चाहते हैं। लेकिन फिर आपको यह सुनिश्चित करना चाहिए कि .pyc
और .pyo
फ़ाइलें कभी नहीं बनाई गई हैं, क्योंकि यह चीजों को गड़बड़ कर सकती है।
वाह, अच्छा। क्या इस्तेमाल किए गए 'पायथन' को ओवरराइड करने का कोई तरीका है? जैसा कि मैंने अपने प्रश्न में लिखा था, यह 'virtenv' के अंदर है। साइड-नोट: उन्हें छोड़ने का मुख्य कारण पैकेज का परिणामी आकार है। – 0xC0000022L
आप अपने '.rpmrc' या' .rpmmacros' फ़ाइल में निर्दिष्ट मैक्रोज़ को प्रतिस्थापित करके इसे ओवरराइड कर सकते हैं। – glglgl
'--define' स्विच का उपयोग करके स्वयं, क्योंकि पूरे निर्माण चरण को स्क्रिप्ट किया गया है और कुछ परिभाषाओं की गणना की जा रही है। – 0xC0000022L