2012-05-13 32 views
32

मैं पाइथन में एक मॉड्यूल नहीं ढूंढ पा रहा हूं, हालांकि easy_install कहता है कि यह पहले से स्थापित है। कोई विचार यह है कि इस आइस्यू को कैसे हल करें?आयात त्रुटि: कोई मॉड्यूल नाम नहीं है sqlalchemy

$ python -c "from flaskext.sqlalchemy import SQLAlchemy" 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
ImportError: No module named sqlalchemy 


$ python -V 
Python 2.7 


$ sudo easy_install sqlalchemy 
Searching for sqlalchemy 
Best match: SQLAlchemy 0.7.7 
Adding SQLAlchemy 0.7.7 to easy-install.pth file 

Using /usr/lib/python2.7/site-packages 
Processing dependencies for sqlalchemy 
Finished processing dependencies for sqlalchemy 

$ sudo pip install SQLAlchemy --upgrade Requirement already up-to-date: SQLAlchemy in /usr/lib/python2.7/site-packages Cleaning up...

हालांकि पिप यह installed.But है मैं उन्हें sys.path उत्पादन में नहीं मिल सकता है कहते हैं।

$ sudo python -c "import sys;print sys.path" ['', 
'/usr/lib/python2.7/site-packages/Flask_SQLAlchemy-0.15-py2.7.egg', 
'/usr/lib/python2.7/site-packages/Flask-0.8-py2.7.egg', 
'/usr/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg', 
'/usr/lib/python2.7/site-packages/Werkzeug-0.8.3-py2.7.egg', 
'/usr/lib/python2.7/site-packages/Flask_WTF-0.5.2-py2.7.egg', 
'/usr/lib/python2.7/site-packages/WTForms-0.6.3-py2.7.egg', 
'/usr/lib/python2.7/site-packages/Flask_Mail-0.6.1-py2.7.egg', 
'/usr/lib/python2.7/site-packages/blinker-1.2-py2.7.egg', 
'/usr/lib/python2.7/site-packages/lamson-1.1-py2.7.egg', 
'/usr/lib/python2.7/site-packages/python_daemon-1.6-py2.7.egg', 
'/usr/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg', 
'/usr/lib/python2.7/site-packages/mock-0.8.0-py2.7.egg', 
'/usr/lib/python2.7/site-packages/chardet-1.0.1-py2.7.egg', 
'/usr/lib/python2.7/site-packages/lockfile-0.9.1-py2.7.egg', 
'/usr/lib/python2.7/site-packages/Flask_FlatPages-0.2-py2.7.egg', 
'/usr/lib/python2.7/site-packages/Markdown-2.1.1-py2.7.egg', 
'/usr/lib/python2.7/site-packages/PyYAML-3.10-py2.7-linux-i686.egg', 
'/usr/lib/python2.7/site-packages/uWSGI-1.0.3-py2.7.egg', 
'/usr/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-i686.egg', 
'/usr/lib/python27.zip', '/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', 
'/usr/lib/python2.7/site-packages', 
'/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info'] 
+0

एक इनाम शुरू किया - के रूप में मैं पिप का उपयोग कर "पिप python- स्थापित एक पैकेज को स्थापित करने again.After इस मुद्दे पाया bcrypt "आज। –

उत्तर

8

ठीक है, मैं भी पिप के माध्यम से पैकेज है कि मदद नहीं की फिर से स्थापित किया है। और फिर मैंने अन्य मशीनों से पूरी /usr/lib/python-2.7 निर्देशिका को समान विन्यास के साथ वर्तमान मशीन से rsync'ed किया। यह काम करना शुरू कर दिया। मुझे कोई विचार नहीं है, मेरे सेटअप में क्या गलत था। मैं पहले और अब कुछ आउटपुट "प्रिंट sys.path" आउटपुट देखता हूं। लेकिन अब मेरे मुद्दे को इस काम से हल किया गया है।

संपादित करें: मेरे सेटअप के लिए वास्तविक समाधान मिला। "sqlalchemy को अपग्रेड करने से केवल समस्या हल नहीं होती है" मुझे समस्या को हल करने वाले flask-sqlalchemy को अपग्रेड करने की भी आवश्यकता है।

+0

यह कामकाज अब मदद नहीं करता है, क्योंकि मेरी दूसरी मशीन नीचे थी :( –

+2

आप वर्चुअलएन्व का उपयोग क्यों नहीं करते? –

+2

ऐसा इसलिए है क्योंकि आपके पायथन-एनवी के आपके lib/site-packages को SQL वर्ग के खराब संस्करण के साथ प्रदूषित किया गया है, और easy_install/pip पहले वहां पाए जाते हैं और स्थापित संकुल के लिए अपना "easy-install.pth" या "setuptools.pth" जांचते हैं, और अगर उन्हें टूटा हुआ संस्करण मिल जाए तो रोकता है; – pinkdawn

2

इस कोड को पूरी तरह से काम करता है:

import sqlalchemy 

शायद तुम दुभाषिया का एक और संस्करण में पैकेज स्थापित?

इसके अलावा, जैसे शॉली ने बताया, आपको पहुंचने के लिए फ्लास्क एक्सटेंशन स्थापित करने की आवश्यकता है।

+0

no..even कि flaskext.sqlalchemy आयात SQLAlchemy से मदद नहीं की "अजगर -c" " Traceback (सबसे हाल कॉल पिछले): फ़ाइल" ", लाइन 1, ImportError में: नहीं मॉड्यूल SQLAlchemy नामित " –

+0

-1 वहाँ SQLAlchemy कुप्पी विस्तार में' SQLAlchemy' वर्ग है ... – schlamar

57

क्या आपने flaskext.sqlalchemy इंस्टॉल किया था? ऐसा लगता है कि आपके पास SQLAlchemy पैकेज स्थापित है लेकिन फ्लास्क एक्सटेंशन नहीं है। pip install Flask-SQLAlchemy या easy_install Flask-SQLAlchemy आज़माएं। यह available in the cheeseshop है इसलिए उपयोगिता को इसे चुनना चाहिए।

+0

hmm..its भी स्थापित "easy_install कुप्पी के SQLAlchemy कुप्पी के SQLAlchemy बेस्ट मैच के लिए खोज: कुप्पी के SQLAlchemy 0.16 कुप्पी के SQLAlchemy जोड़ना 0.16 आसान-स्थापित.pth फ़ाइल /usr/lib/python2.7/site-packages फ्लास्क-स्क्लाक्लेमीके लिए प्रसंस्करण निर्भरता का उपयोग करनाफ्लास्क-स्क्लाक्लेमी " –

+0

उबंटू 12.04 पर प्रसंस्करण निर्भरताओं को समाप्त किया गया, पाइप स्थापित करें फ्लास्क-स्क्लाक्लेमी ने मेरे लिए चाल बनाई। –

+1

बस एक त्रुटि जोड़ रहा था जो मैं कर रहा था। मैं वर्चुअलएन्व का उपयोग कर रहा था और इस समस्या का सामना कर रहा था। 'पाइप इंस्टॉल फ्लास्क-स्क्लाक्लेमी '** बिना सुडो ** ** यह मेरे लिए काम कर रहा था। – willcwf

31

मुझे बस एक ही समस्या का अनुभव हुआ। जाहिर है, एक नई वितरण विधि है, एक्सटेंशन कोड अब flaskext के तहत संग्रहीत नहीं है।

स्रोत: बोतल CHANGELOG

यह मेरे लिए काम किया:

from flask_sqlalchemy import SQLAlchemy 
+0

अद्यतन के लिए धन्यवाद। आशा है कि यह किसी के लिए सहायक होगा :) –

+2

या 'flask.ext.sqlalchemy आयात से SQLAlchemy' – schlamar

+0

मेरा दिन बचाया .... '' flask.ext.sqlalchemy से मेरे लिए काम नहीं कर रहा है' –

3

तो यहाँ एक विचार है!

चूंकि यह कहीं और काम करने लग रहा था।

python-virtualenv स्थापित और वैकल्पिक रूप से आप virtualenv-आवरण स्थापित कर सकते हैं (जो बहुत अच्छा है परियोजनाओं और इतने पर बनाने के लिए)

प्रत्येक env में, आप अंडे के विभिन्न संस्करणों हो सकता है। दूसरे शब्दों में, आप दो अलग envs में sqlalchemy 1 और sqlaclhemy 1.5 हो सकता है और वे एक दूसरे के साथ संघर्ष नहीं करेंगे। ऐसा लगता है कि आपको वर्तमान में स्थापित अंडे के साथ समस्या है।

तो यहाँ हम चले:

virtualenv --no-site-packages foo 
source foo/bin/activate 

पैरामीटर --no-साइट-संकुल एक virtualenv पैदा करेगा और संकुल पहले से ही आपके कंप्यूटर पर स्थापित का उपयोग नहीं। यह एक नंगे पायथन स्थापित की तरह काफी सुंदर है।

source foo/bin/activate वर्चुअलएन्व लोड करता है।

यह वास्तव में उपयोगकर्ता मित्रतापूर्ण नहीं है। और यही कारण है कि http://www.doughellmann.com/projects/virtualenvwrapper/ मौजूद है।

उसने कहा, आपको अपने टर्मिनल "(foo) उपयोगकर्ता @ डोमेन $ में थैंट की तरह कुछ देखना चाहिए:" एक बार आपका वर्चुअलएन्व सक्रिय हो जाने पर। इसका मतलब है कि आप जा सकते हैं!

फिर आपको करना है।

python setup.py develop आपकी परियोजना के। इसे foo में स्थित वर्चुअलएन्व में अपनी प्रोजेक्ट की निर्भरताओं को डाउनलोड और इंस्टॉल करना चाहिए। यदि आपको कुछ और स्थापित करने की आवश्यकता है, तो कृपया का उपयोग किये बिना pip या easy_install का उपयोग करें। वर्चुअलएन्व का उपयोग करते समय, आपको लगभग sudo का उपयोग करने की आवश्यकता नहीं है। सुडो आपके ग्लोबल पायथन इंस्टॉलेशन में पैकेज स्थापित करेगा, जबकि इसकी आवश्यकता नहीं है और वास्तव में वांछनीय नहीं है।

यदि आपके वर्चुअलएन्व में कुछ होता है, तो आप इसे हमेशा हटा सकते हैं और एक नया बना सकते हैं। यह कोई बड़ी बात नहीं है। कुछ भी गड़बड़ करने की जरूरत नहीं है। काम नहीं करता है? शुरू करें, यदि आवश्यक हो तो pip install -U करें, यदि आवश्यक हो तो संस्करणों को परिभाषित करें और इसी तरह।

अंतिम लेकिन कम से कम नहीं, अन्य उत्तरों में, ऐसा लगता है कि आयात बदल गया। यदि फ्लास्क-स्क्लेल्चेमी के लिए नए संस्करण कहीं और स्थित हैं, तो आपको अपने आयात को अपडेट करना चाहिए या उस संस्करण को इंस्टॉल करना चाहिए जिसका उपयोग आपने किया था।

6

यह मेरे लिए काम करता है:

sudo pip install flask_sqlalchemy 
sudo pip install sqlalchemy 
फिर अपने कोड का उपयोग में

:

from flask_sqlalchemy import SQLAlchemy 
+0

हां, यहां एक उदाहरण है: https://github.com/mitsuhiko/flask-sqlalchemy/blob/master/examples/hello.py – obohovyk

संबंधित मुद्दे