Python.exe के लिए हार्डकोड किए गए पथ के बिना एक डिफ़ॉल्ट ब्राउज़र के रूप में एक पायथन स्क्रिप्ट चलाना


2

मेरे पास एक छोटा अजगर स्क्रिप्ट है जो रजिस्ट्री में मेरे डिफ़ॉल्ट ब्राउज़र के रूप में सेट है। यह URL के आधार पर IE या फ़ायरफ़ॉक्स लॉन्च करने का चयन करेगा (कुछ कार्य स्थल केवल IE में कार्य करते हैं)। अतीत में, मैंने इसे लॉन्च करने के लिए अजगर स्थापना के लिए एक पूर्ण पथ का उपयोग किया था, लेकिन हाल ही में अजगर स्थापित स्थान में बदलाव के कारण यह टूट गया (अब यह हमारी परियोजना फाइलों के साथ बंडल है, इसलिए यह अधिक बार बदल सकता है)। जब यह चलता है तो पथ को अद्यतन किया जाना चाहिए, इसलिए बस वर्तमान वातावरण के आधार पर अजगर को खोजने के लिए पर्याप्त होना चाहिए।

यह पुरानी रजिस्ट्री कमांड प्रविष्टि है:

[HKEY_CLASSES_ROOT \ RRBrowserChooserURL \ खोल \ खुला \ कमांड]

@ = "\" C: \\ Python26 \\ python.exe \ "\" C: \\ browser_chooser.pyw \ "\"% 1 \ ""

यहाँ अब तक का सबसे अच्छा काम करने वाला विकल्प आया हूँ:

[HKEY_CLASSES_ROOT \ RRBrowserChooserURL \ खोल \ खुला \ कमांड]

@ = "\" C: \\ Windows \\ System32 \\ cmd.exe \ "\" / c \ "\" C: \\ browser_chooser.pyw \ "\"% 1 \ ""

हालांकि, लिंक खोलने पर यह संक्षिप्त रूप से कमांड विंडो को पॉप अप करता है। मैं उससे बचना चाहूंगा।

किसी अन्य भाषा में अपनी स्क्रिप्ट को फिर से लिखना और एक निष्पादन योग्य में संकलित करने के बिना मैं सीधे संदर्भ दे सकता हूं, क्या यह रास्ता जानने के बिना निष्पादित करने का एक अच्छा तरीका है?

जवाबों:


1

आपको पायथन पथ को सिस्टम वैरिएबल PATH में जोड़ना होगा या एक नया सिस्टम वैरिएबल बनाना होगा जो PYTHONDIR जैसा है और उस पाइथन डायरेक्टरी को इंगित करता है और फिर python.exe को% PYTHONIR% \ python.exe के साथ कॉल करें

पुनश्च। आप फ़ायरफ़ॉक्स ऐड-ऑन का उपयोग क्यों नहीं करते हैं IE टैब ?


मैं Google क्रोम फ्रेम के साथ IE समस्या को हल करता हूं - यह (एल) उपयोगकर्ताओं को IE का उपयोग करना जारी रखता है, लेकिन जब भी साइट इसके लिए पूछती है, तो वह IE को क्रोम इंजन का उपयोग करके साइट के भीतर प्रस्तुत करेगा। मेरी वेबसाइटें मेरे IE उपयोगकर्ताओं के इस प्लगइन की मांग करती हैं। एक भयानक समस्या का एक चतुर समाधान।
James T Snell

अजगर स्थापित निर्देशिका पथ में है, यही कारण है कि cmd.exe काम करता है। निर्वासन के लिए एक पूर्ण पथ के बिना, यह नहीं पाया जा सकता है। जब मैं कल कार्यालय में हूँ तो मैं IE टैब की कोशिश करूँगा।
RabbleRooster

@ रेबलरॉस्टर, यह अजीब है क्योंकि यह मेरे लिए काम करता है। मैंने सिर्फ अपने सिस्टम पर एक परीक्षण बनाया कि आप क्या कर रहे हैं और यह काम कर रहा है।
Winter Faulk

PATH का लाभ उठाने वाला वाक्य रचना क्या था? यह मेरे लिए काम नहीं करता है: @ = "\" python.exe \ "\" C: \\ browser_chooser.pyw \ "\"% 1 \ ""
RabbleRooster

@ = "python.exe \" c: \\ test.py \ "\"% 1 \ ""
Winter Faulk

0

क्या आप उपयोग कर सकते हैं? .lnk फ़ाइल (यानी, एक फ़ाइल सिस्टम शॉर्टकट) में open\command रजिस्ट्री में फ़ील्ड? यदि हां, तो एक शॉर्टकट बनाएं जो आपके चलाता है cmd /c कमांड और "मिनीमाइज़्ड" पर "रन" नियंत्रण सेट करें:

shortcut properties window with Run = Minimized circled

cmd.exe अभी भी चलेगा, लेकिन यह एक विंडो को पॉप अप नहीं करेगा; यह केवल एक टास्कबार बटन प्रदर्शित करेगा।


0

यदि पुनर्लेखन के बिना संकलन एक विकल्प है, तो आप अपने अजगर की स्क्रिप्ट को एक निर्वासन में संकलित कर सकते हैं py2exe या pyinstaller - यह इसे एक आत्म निहित exe और dlls में संकलित करेगा जिसका उपयोग आप अनुप्रयोग को अपने स्वयं के अजगर की नकल के साथ dll के रूप में चलाने के लिए कर सकते हैं।


1
py2exe बहुत पुराना है। शायद उपयोग करने के लिए बेहतर है pyinstaller
ernie

ओह, उस के बारे में पता नहीं था। इसे मेरे उत्तर में संपादित किया, धन्यवाद
Journeyman Geek

कुछ भी एक विकल्प है; यह एक सुविधा उपकरण है। अगर मुझे कोई बेहतर विकल्प नहीं मिला, तो मैं इस रास्ते से जाने वाला था। इस स्क्रिप्ट को कार्यालय के चारों ओर थोड़ा सा पारित किया गया था, और मुझे यह पसंद आया कि लोग आवश्यकता पड़ने पर नियमों को संशोधित करने के लिए इसे आसानी से संपादित कर सकें।
RabbleRooster
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.