2016-04-04 12 views
9

आयात नहीं करता है मैं कुछ स्क्रिप्ट को मुड़ और कतार के साथ संकलित करने की कोशिश कर रहा हूं।PyInstaller कतार

pyinstaller sample.py --onefile 
# -*- coding: utf-8 -*-# 
from twisted import * 
import queue as Queue 
a = Queue.Queue() 

दुर्भाग्य से, उत्पादन फ़ाइल ImportError: No module named queue साथ विफल रहता है।

+0

मैंने यह भी कोशिश की है: pyinstaller sample.py --onefile --hidden-import queue लेकिन कोई भाग्य नहीं है। मेरा पायथन 2.x – pmus

+1

है यदि आप अधिक जानकारी जोड़ते हैं तो यह बेहतर हो सकता है। अगर हमारे पास एक ही समस्या है तो यह मेरे जैसे अन्य प्रश्नों को दोबारा पूछने में मदद करता है। (Https://github.com/pyinstaller/pyinstaller/wiki/How-to- रिपोर्ट- बग्स)। चीयर्स! –

+0

कृपया https://github.com/pyinstaller/pyinstaller/issues/1939#issuecomment-213976155 –

उत्तर

2

मुझे इस नामकरण का उपयोग करके सफलता मिलती है। मैं अजगर 2,7

import Queue 
queue = Queue.Queue() 

और pyinstaller के साथ इस तर्क पारित का उपयोग करें:

--hidden-import=Queue 

और यह काम करता है।

+1

आप बिल्कुल सही हैं। – pmus

6
pip install twisted --upgrade 

सब कुछ तय किया गया।

अद्यतन

भी cmdline में --hidden आयात = कतार उपयोग करने के लिए मत भूलना।

+0

यह अभी भी मेरे लिए काम नहीं करता है। क्या यह आपके लिए एक फ़ाइल के बिना काम करता है? –

+2

@ अभिषेक भाटिया इसे कम कर रहा है क्योंकि यह आपके लिए काम नहीं करता है, डाउनवॉटिंग का उचित उपयोग नहीं है। यह वह समाधान है जिसे pmus अपने स्वयं के प्रश्न के लिए मिला। तो यह जवाब इस मामले में मान्य है। यदि आपको इस सटीक स्थिति के लिए एक और समाधान मिलता है, तो आप इसे पोस्ट कर सकते हैं और समझा सकते हैं। या यदि आपको लगता है कि डाउनवोट मान्य है क्योंकि यह समाधान गलत है या बुरा है, तो उसे समझाएं। – idjaw

+0

@ अपराह्न कृपया अपग्रेड किए गए संस्करण के लिए विवरण प्रदान करें जो आप अपग्रेड और पहले के बाद उपयोग कर रहे हैं।साथ ही, चूंकि यह संभवतः ओएस के लिए विशिष्ट समस्या का उपयोग कर रहा है। उल्लेख नहीं है कि मेरे जैसे अन्य लोगों के लिए भी सहायक नहीं है जो एक ही समस्या रखते हैं। धन्यवाद! –

8

मुझे नहीं लगता कि यह एक PyInstaller या मुड़ संबंधित संबंधित मुद्दा है। Queue मॉड्यूल मानक लाइब्रेरी का हिस्सा है, और समस्या यह है कि आप इसे नाम दे रहे हैं। पायथन 2 में, यह Queue पूंजी पत्र के साथ है, लेकिन पायथन 3 में, इसका नाम बदलकर queue अधिक मानक नामकरण सम्मेलन का पालन करने के लिए किया जाता है जहां मॉड्यूल के लोअरकेस नाम होते हैं।

आपकी स्क्रिप्ट ऐसा लगता है कि यह पाइथन 3 कोड के पाइथन 2 कोड का एक बंदरगाह है (इस प्रकार import का as Queue हिस्सा), लेकिन आप इसे अभी भी पायथन 2 के साथ चला रहे हैं। यह Queue आयात गलत होने के अलावा अन्य सूक्ष्म तरीकों से असफल हो सकता है (उदाहरण के लिए यूनिकोड हैंडलिंग सभी गलत हो सकती है)।

+1

त्रुटि को आयात करने से भी यह त्रुटि बनी रहती है, मैं अनुमान लगा रहा हूं कि आयात की वजह से यह कतार में है। यह अधिक जानकारी के http://stackoverflow.com/review/suggested-edits/12037835 –

+1

प्रदान करना चाहिए हम्म, अगर है कि संपादित की त्रुटि संदेश सही है, तो आप नहीं 'Queue' एक राजधानी' Q' साथ आयात करने के लिए या तो कर रहे हैं। उस मामले में मुझे नहीं पता कि क्या हो रहा है। मैं (शायद आप अन्य उपयोगकर्ताओं में से एक यहां से?) एक बग PyInstaller को दायर देख पा रहे हैं: https://github.com/pyinstaller/pyinstaller/issues/1939 – Blckknght

+0

@Blckknght यह मुड़ जो कतार आयात करता है। मैंने मुख्य फ़ाइल में "आयात कतार" जोड़ा है उम्मीद है कि PyInstaller उस आयात को हुक कर सकता है। लेकिन ऐसा नहीं हुआ। – pmus

1

पायथन 2.7 का उपयोग कर विंडोज़ पर, 3.2 तक पइंस्टॉलर को कतार और क्यू मॉड्यूल द्वारा समान नाम वाले भ्रमित किया जा सकता है। https://github.com/pyinstaller/pyinstaller/issues/1935

यह पाइंस्टॉलर के ट्रंक पर तय किया गया है। मुझे बग के आसपास काम करने के लिए स्रोत से pyinstaller स्थापित करना पड़ा।

git clone https://github.com/pyinstaller/pyinstaller 
cd pyinstaller 
python setup.py install