Win32

2010-04-20 11 views
18

पर इंस्टॉलर का उपयोग किए बिना पायथन 2.6 स्थापित करें मुझे एक मशीन पर एक पायथन स्क्रिप्ट चलाने की आवश्यकता है जिसमें पाइथन स्थापित नहीं है। मैं एक सॉफ्टवेयर पैकेज के हिस्से के रूप में पायथन का उपयोग करता हूं, और पाइथन उपयोगकर्ता के नोटिस के बिना पर्दे के पीछे चलता है।Win32

मैंने जो किया वह निम्नानुसार था।

  1. कॉपी python.exe, python26.dll, msvcr90.dll और Microsoft.VC90.CRT.manifest
  2. पिन python26.zip के रूप में libs निर्देशिका में सभी निर्देशिका
  3. कॉपी सभी आवश्यक dll/डीएलएल निर्देशिका के अंदर पीईडी फाइलें।

ऐसा लगता है, लेकिन जब मैं pythonlib.zip जैसे अन्य नाम पर python26.zip बदलता हूं, तो यह पाइथन लाइब्रेरी को और नहीं पा सकता है।

  • प्रश्न 1: python26.zip नाम के पीछे जादू क्या है? पाइथन स्वचालित रूप से एक python26.zip के अंदर एक पुस्तकालय पाता है, लेकिन अलग नाम के साथ नहीं?
  • प्रश्न 2: यदि मेरे पास python26.zip उसी निर्देशिका पर है जहां python.exe/python26.dll है, तो मुझे पथ sys.path.append (पथ से python26.zip) जोड़ने की आवश्यकता नहीं है। क्या यह सही है?

पायथन ने पुस्तकालयों का निर्माण किया है, और sys उनमें से एक है। मैंने सोचा कि मैं ज़िप फ़ाइल में जो कुछ भी पाइथन लाइब्रेरी की आवश्यकता है, उसे इंगित करने के लिए sys.path का उपयोग कर सकता हूं। लेकिन, आश्चर्य की बात है, अगर मैं पुस्तकालय नाम का उपयोग Python26.zip के रूप में करता हूं, तो यह अभी काम करता है। ऐसा क्यों है?

+2

कोई व्यवस्थापक विशेषाधिकार नहीं है? –

+2

मैन्युअल रूप से पायथन स्थापित करने से सावधान रहें। आपको शायद इसे ठीक से चलाने के लिए मिल जाएगा लेकिन किसी भी अतिरिक्त पुस्तकालय स्थापित करना बाद में एक बड़ा दर्द है। – ktdrv

+1

क्या आप सिर्फ py2exe का उपयोग कर अपने ऐप को पैकेज कर सकते हैं? (इसमें एक्सई के अंदर दुभाषिया की एक प्रति शामिल होगी) –

उत्तर

10

मैंने पायथन दुभाषिया स्रोत कोड में देखा, और मैंने कुछ प्रयोग किए। और मैंने पाया कि पायथन दुभाषिया "PYTHONXXX.DLL + pythonXXX.zip की निर्देशिका" को कोई फर्क नहीं पड़ता। XXX पायथन दुभाषिया का संस्करण है।

परिणामस्वरूप, यदि कोई python26 है।python26.dll के समान निर्देशिका में ज़िप करें। मैं स्वचालित रूप से सभी पायथन पुस्तकालय का उपयोग कर सकता था।

26

मैं अब एक वर्ष के लिए PortablePython का उपयोग कर रहा हूं, और मुझे यह बहुत अच्छा लगता है क्योंकि यह मेरे लॉक-डाउन वर्क-नोटबुक पर काम कर रहा है।

एक पायथन 2.5.4, 2.6.1 और 3.0.1 संस्करण है।

+1

पोर्टेबल पाइथन के बारे में पहले नहीं सुना था। महान टिप। – Frederik

+0

आप पीपी युक्त यूएसबी में अतिरिक्त मॉड्यूल जोड़ सकते हैं, इसलिए अब आप जो कॉपी कर रहे हैं उस पर इसका उपयोग करने से आपको कुछ भी नहीं रोक रहा है – PPTim

+0

ummmm उपयोगकर्ता उनके आसपास क्या हो रहा है इसके बारे में काफी अनजान हो सकते हैं लेकिन क्या वे यूएसबी ड्राइव नहीं देखते ? –

2

py2exe आपको अपनी पायथन स्क्रिप्ट को विंडोज निष्पादन योग्य में संकलित करने की अनुमति देगा। यह पोर्टेबल पाइथन से बेहतर काम कर सकता है या नहीं भी हो सकता है, लेकिन शायद यह "पर्दे के पीछे" कार्यक्रम के लिए वितरित करने के लिए आवश्यक फ़ाइलों की संख्या के संबंध में थोड़ा क्लीनर हो सकता है।

3

एक और विकल्प PyInstaller पर विचार करना पड़ सकता है जो स्टैंड-अलोन पायथन एप्लिकेशन क्रॉस-प्लेटफार्म तैयार करेगा। मुख्यपृष्ठ से:

PyInstaller एक प्रोग्राम है जो, स्टैंड-अलोन निष्पादनयोग्य में (संकुल) अजगर कार्यक्रमों धर्मान्तरित विंडोज, लिनक्स, और मैक ओएस एक्स के तहत है [...] PyInstaller का मुख्य लक्ष्य है आउट-ऑफ-द-बॉक्स के साथ तृतीय-पक्ष पैकेज के साथ संगत रहें। इसका अर्थ यह है कि, PyInstaller के साथ, बाहरी पैकेज काम करने के लिए सभी आवश्यक चालें पहले से ही PyInstaller के भीतर एकीकृत हैं ताकि उपयोगकर्ता हस्तक्षेप की आवश्यकता न हो। आपको विकीज़ में चाल की तलाश करने की आवश्यकता नहीं होगी और आपकी फ़ाइलों या आपकी सेटअप स्क्रिप्ट में कस्टम संशोधन लागू नहीं होगा। उदाहरण के तौर पर, पीईक्यूटी और मैटलप्लिब जैसे लाइब्रेरी प्लगइन या बाहरी डेटा फ़ाइलों को मैन्युअल रूप से संभालने के बिना पूरी तरह से समर्थित हैं। समर्थित पैकेज की हमारी संगतता सूची देखें।

+0

PyInstaller Python2.6 के साथ विंडोज का समर्थन नहीं करता है। यह मेरे लिए एक अवरोधक है और दूसरों के लिए भी हो सकता है। http://www.pyinstaller.org/wiki/Python26Win – blokeley

5

एक और विकल्प WinPython स्थापित कर रहा है। यह एक इंस्टॉलर का उपयोग करता है, लेकिन इसे व्यवस्थापक अधिकारों की आवश्यकता नहीं है (विंडोज 7 पर परीक्षण)। पोर्टेबल पायथन के विपरीत, इसमें एक पायथन 3.3.5 संस्करण भी है।

10

Sylvain Pointeau's blog से:

प्रक्रिया वास्तव में बहुत सरल है, बस http://www.python.org/getit/ से MSI इंस्टॉलर डाउनलोड करने और टाइप आदेश:

C:\development\apps>msiexec /a python-3.3.2.msi /qb TARGETDIR=C:\development\apps\python33

उसका उदाहरण msiexec का उपयोग करता है (उर्फ आपके लिए एमएसआई प्रशासनिक इंस्टॉलर लोगों को अनइंस्टक्ट करें) TARGETDIR पर निकालने के लिए मजबूर करें। आप देखेंगे कि वहाँ एक आंतरिक इंस्टॉलर है जिसे आप हटाते हैं।

संपादित करें: इसके अलावा आप इसे चुप भी बना सकते हैं, लेकिन हर बार जब आप पाइथन का उपयोग करना चाहते हैं तो यह गूंगा लगता है। बस एक tempdir निकालें और फिर जब वे इसे अनइंस्टॉल करते हैं तो सफाई करें।

पीएस: मैंने नहीं देखा कि यह कितना पुराना था! : डी

+1

मुझे हाल ही में 2.7.11 के साथ ऐसा करना था। साथ ही, आपको मैन्युअल रूप से पाइप इंस्टॉल करना होगा ('get-pip.py' स्क्रिप्ट का उपयोग करके)। – Erik