2012-11-30 10 views
5

पर चलते समय pyodbc मॉड्यूल लोड करने में त्रुटि पहले मैं अपाचे पर वर्चुअल होस्ट का उपयोग करके कई डेमो django प्रोजेक्ट होस्ट करने का प्रयास कर रहा हूं, और स्टैक ओवरफ्लो की सहायता से सफलतापूर्वक रहा हूं।अपाचे

अब मैं पिछले तकनीक की तरह एक ही तकनीक का उपयोग करके अपनी नई परियोजना को होस्ट करने की कोशिश कर रहा हूं। मेरी नई परियोजना sql_server डेटाबेस से जुड़ा हुआ है। डीजेंगोस इन-बिल्ट सर्वर का उपयोग करते समय मेरा प्रोजेक्ट पूरी तरह से चलता है।

जब मैं अपाचे का उपयोग कर चल रहे प्रयास करते समय मुझे 500 आंतरिक सर्वर त्रुटि हो और मेरी अपाचे त्रुटि लॉग चलता -

import os 
import sys 

path = 'C:/path/project1' 
if path not in sys.path: 
    sys.path.append(path) 

os.environ["DJANGO_SETTINGS_MODULE"] = "settings" 

from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

और मैं करता हूँ -

Exception occurred processing WSGI script 

ImproperlyConfigured: Error loading pyodbc module: DLL load failed: A dynamic link library (DLL) initialization routine failed. 

मेरे WSGI फ़ाइल इस तरह दिखता है "सी: \ विंडोज \ SysWOW64 \ python27.dll" मेरी मशीन में

मेरे प्रणाली - विंडोज 7, अपाचे 2.2, अजगर 2.7, Django 1.4.2

एक अन्य जानकारी मैं अपने मशीन पर पता चला - अजगर 2.7 (R27: 82,525, जुलाई 4, 2010, 9:01: 5 9) [एमएससी v.1500 32 बिट (इंटेल)] Win32

इस पर कोई समाधान ??

लोग बहुत धन्यवाद ...

उत्तर

4

मैं इस समस्या को हल करने में कामयाब रहे, severl घंटे खर्च जवाब के लिए googling के बाद, अंत में एक जवाब here पाया, और यह कहते हैं:

यह इस निर्भरता दिखाई देने वाले python.exe के अंदर चलकर संतुष्ट हो रहा है (जो इसके खिलाफ जुड़ा हुआ है)। जब पाइथन दुभाषिया का डीएलएल संस्करण किसी अन्य प्रक्रिया द्वारा होस्ट किया जाता है, तो विंडोज़ एसएक्स कॉन्फ़िगरेशन केवल python dll पर msvcr90 निर्भरता लागू करता है।

इसका मतलब है कि सामान्य रूप में, pyodbc.pyd (और संभावना pyodbcconf.pyd) खिड़कियों जब तक मेजबान आवेदन MSVC runtimes के उपयुक्त संस्करण के खिलाफ जुड़ा हुआ है पर एम्बेडेड अजगर में व्यर्थ हो जाएगा।

mt.exe (विंडोज़ एसडीके में एक स्वतंत्र रूप से उपलब्ध टूल) का उपयोग करें और कमांड लाइन पर कमांड का प्रयास करें।

Where do I get mt.exe?

mt.exe -inputresource:c:\windows\syswow64\python27.dll;#2 -outputresource:pyodbc.pyd;#2 

mt.exe -inputresource:c:\windows\syswow64\python27.dll;#2 -outputresource:pyodbcconf.pyd;#2 

उम्मीद है कि इस किसी के लिए उपयोगी हो wil।

चीयर्स

+0

मेरे पास एक pyodbcconf.pyd नहीं था, लेकिन पहले कमांड को निष्पादित किया - धन्यवाद! – Pakman

+0

mt.exe c: \ Python32 \ Lib \ site-packages> "c: \ प्रोग्राम फ़ाइलें (x86) \ Microsoft SDKs \ Windows \ v7.1A \ Bin \ mt.exe" -inputresource: c: \ windows \ syswow64 \ python32.dll; # 2 -outputresource: pyodbc.pyd; # 2 माइक्रोसॉफ्ट (आर) मैनिफेस्ट टूल संस्करण 6.1.7716।0 कॉपीराइट (सी) माइक्रोसॉफ्ट कॉर्पोरेशन 200 9। सभी अधिकार सुरक्षित। mt.exe: सामान्य त्रुटि c101008c: फ़ाइल "c: \ windows \ syswow64 \ python32.dll" के संसाधन से मैनिफेस्ट पढ़ने में विफल। सिस्टम निर्दिष्ट फाइल का पता लगाने में नाकामयाब रहा। –