2016-12-07 8 views
7

प्रश्न खिड़कियों पर pserve क्रियान्वित: मैं खिड़कियों में virtualenv पर pserve क्रियान्वित नहीं-ascii चरित्र त्रुटि को कैसे हल कर सकते हैं?गैर- ASCII वर्ण ' X90' अंदर virtualenv

विवरण: मैं विंडोज़ पर वर्चुअलनेव के अंदर pserve (पायथन/पिरामिड विकास वेब सर्वर) निष्पादित करने की कोशिश कर रहा हूं। यह एक ताजा इंस्टॉल है, तो शायद यह संस्करणों से संबंधित है।

समस्या: virtualenv सक्रिय के साथ, पर अमल pserve config.ini फेंक त्रुटि: SyntaxError: Non-ASCII character '\x90' in file C:\PATH_TO_MY_ENV_HOME\env\Scripts\pserve.exe on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

आदेश लाइन:

pserve development.ini --reload 

नोट्स:

  1. इस त्रुटि ताकि आप जोड़ सकते हैं, ऐसा आपको लगता है कि वर्तमान फ़ाइल एन्कोडिंग से मेल नहीं खाता पात्रों के साथ एक फ़ाइल है जब पायथन लिपि की शुरुआत में सही enconde सेट करने के लिए एक निर्देश।
  2. यह तब हो सकता है जब कॉल किए गए लक्ष्य में कुछ मामलों में एक्सई एक्सटेंशन हो और स्क्रिप्ट जो इसे कॉल करने के लिए अंत में एक एक्सई जोड़ती है। तो, पायथन रनटाइम इस त्रुटि को फेंक देता है क्योंकि exe फ़ाइल को स्क्रिप्ट के रूप में नहीं कहा जाना चाहिए, लेकिन केवल प्रत्यय जोड़ने के बिना बुलाया जाता है।
  3. निष्पादन योग्य के पथ में विशेष वर्ण नहीं हैं।

टेस्ट किया:

  1. pserve से exe एक्सटेंशन निकाल दें। काम नहीं किया: मान्यता प्राप्त कमांड संदेश नहीं।
  2. कॉल pserve-script.py बजाय pserve (पूर्ण पथ भी कोशिश की) कॉल करें। काम नहीं किया: कुछ भी नहीं और कुछ भी नहीं देता है।
  3. pserve-script.py की शुरुआत में "- * - एन्कोडिंग: utf-8" जोड़ा गया। वही संदेश
  4. python.exe से exe extenstion निकालें (पूर्ण पथ भी कोशिश की गई)। काम नहीं किया: "प्रक्रिया बनाने में विफल"।

पर्यावरण:

  • Windows 10 1607 निर्माण 14393,447
  • अजगर संस्करण: Anaconda2, अजगर 2.7.11
  • पिरामिड संस्करण: पिरामिड 1.7.3
  • वर्चुअल env: 15.1 0

समाधान:

अनइंस्टॉल करें और इंस्टॉल करें फिर से समस्या को हल करें।

+1

तुम एक सवाल पूछने के लिए भूल गया था। – IInspectable

+1

कृपया सही कोड या कमांड लाइन शामिल करें जिसका उपयोग आप pserve को चलाने के लिए कर रहे हैं। ऐसा लगता है कि पाइथन .exe को चलाने की कोशिश कर रहा है जैसे कि यह एक पायथन स्क्रिप्ट था। – RichVel

+0

@RichVel, प्रश्न में जोड़ा गया। –

उत्तर

0

encoding के बजाय मैं बस coding का उपयोग करता हूं (और ऐसा लगता है कि -*- आवश्यक नहीं है)।लगभग हर अजगर स्क्रिप्ट मैंने लिखा साथ शुरू होता है:

#coding: utf-8 

मैं Windows 10

+0

समस्या एक ही है। # कोडिंग: यूटीएफ -8 भी परीक्षण किया। समस्या स्क्रिप्ट के साथ नहीं है, लेकिन pserve exe निष्पादित करने की कोशिश के साथ। –

0

पर पायथन 2.7.10 उपयोग कर रहा हूँ मैं वास्तव में एक जवाब यहाँ नहीं है के रूप में मैं या तो पिरामिड या का उपयोग नहीं करते विंडोज। हालांकि, यह कुछ लोगों द्वारा पहले देखा गया है और python.exepserve.exe निष्पादित करने के लिए उपयोग किया जा रहा है, जो एक निष्पादन योग्य नहीं है क्योंकि यह एक पायथन प्रोग्राम नहीं है।

ये कुछ लिंक है कि इस आगे बढ़ने कर सकते हैं कर रहे हैं - आप Google समूह में शामिल के रूप में यह अधिक केंद्रित पिरामिड विशेषज्ञता हासिल है की सिफारिश:

एक विशेष विचार सुनिश्चित करने के लिए आप एक pserve.py फ़ाइल pserve.exe है और न आप python pserve.py का उपयोग इसे चलाने के लिए है। यदि कॉलिंग स्क्रिप्ट में सीमाएं हैं, तो पाइथन को कॉल करने के लिए run-pserve.bat बैच फ़ाइल बनाएं और कॉलिंग स्क्रिप्ट के बाहर इसका परीक्षण करें।

वैकल्पिक रूप से, आप विंडोज पर एक पूर्व-कॉन्फ़िगर किए गए लिनक्स वीएम का उपयोग करना चाह सकते हैं। या विंडोज 10 पर एक अच्छा 'विंडोज़ के लिए बैश' उर्फ ​​Windows Subsystem for Linux है जो वास्तव में एक पूर्ण उबंटू लिनक्स है। इनमें से कोई भी विंडोज के मुकाबले विकास के लिए बहुत आसान बना देगा, मुझे लगता है।

+0

मैं पहले से ही विंडोज़ के लिए बैश का उपयोग करता हूं, लेकिन मैं विंडोज़ पर वर्चुअलनेव (पायथन उपयोगिता) के साथ पिचर्म या बनाम को एकीकृत करना चाहता हूं। मैं अपनी स्क्रिप्ट निष्पादित करने के लिए भी डब्ल्यूएसएल का उपयोग कर रहा हूं, लेकिन डब्लूएसएल के साथ एकीकरण करने का कोई साफ तरीका नहीं है (रिमोट लिंकिंग साफ़ नहीं है। मैंने इसकी खोज की है)। अतीत में प्रयुक्त वीएम भी, लेकिन मैं जो खोज रहा हूं वह नहीं है। इसके अलावा इस pserve वर्चुअलenv के साथ समस्याओं के बिना वास्तव में काम करना चाहिए। –

+0

मान लीजिए 'pserve' वास्तव में एक पायथन लिपि है, 'पायथन pserve develop.ini --reload'' का प्रयास करें - यदि यह काम करता है, तो इसे 'run-pserve.bat' फ़ाइल में रखें। यह जांचने के लिए कि क्या आपका वर्चुअलएन्व सेटअप सही है, आप '/ path/to/my/venv/bin/python pserve development.ini --reload' का उपयोग भी कर सकते हैं जो वर्चुअलएन्व का उपयोग करता है भले ही env vars आदि सही न हों। – RichVel

+0

मैंने पूरा पथ भी कोशिश की है, @RichVel। इसे प्रतिबिंबित करने के लिए प्रश्न संपादित किया। इसके अलावा, pserve-script।py pserve.exe को कॉल करने के लिए सिर्फ एक रैपर है। दोनों फाइलों (exe और py) को पूर्ण और सापेक्ष कॉल दोनों का प्रयास किया। –

0

अपने virtualenv बैठता venv निर्देशिका में

इस का प्रयोग करें यह मानते हुए:

python venv/Lib/site-packages/pyramid/scripts/pserve.py some-ini-config.ini --reload 
संबंधित मुद्दे