2011-06-18 2 views
0

Попытка построить любую версию pymssql на Mac OS X 10.6.6. Обе версии 1.0.2 (стабильная) и 1.9.909 (trunk) строят и устанавливают, но возвращают следующую ошибку при импорте. Кто-нибудь имел успех в этом проекте? (примечание Я использую pyodbc в то же время, но хотелось бы устранить ODBC слой, если это возможно)Строительство pymssql на OS X

Python 2.6.5 (r265:79359, Mar 24 2010, 01:32:55) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 

>>> import pymssql 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "_mssql.pxd", line 10, in init pymssql (pymssql.c:8444) 
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pymssql-1.9.909_dev-py2.6-macosx-10.6-intel.egg/_mssql.so, 2): **Symbol not found: _dbadata** 
    Referenced from: /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pymssql-1.9.909_dev-py2.6-macosx-10.6-intel.egg/_mssql.so 
    **Expected in: flat namespace** 
in /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pymssql-1.9.909_dev-py2.6-macosx-10.6-intel.egg/_mssql.so 

ответ

1

ФАБ (ткань) сценарий я написал, чтобы сделать это

import os 
from fabric.api import local 

def prep_dev_env(): 
    os.chdir('/tmp/') 
    local('cvs -d:pserver:freetds.cvs.sourceforge.net:/cvsroot/freetds login') 
    local('cvs -z3 -d:pserver:freetds.cvs.sourceforge.net:/cvsroot/freetds checkout -P freetds') 
    os.chdir('/tmp/freetds/') 
    local('sudo ./autogen.sh --with-tdsver=7.0') 
    local('sudo make') 
    local('sudo make install') 
    os.chdir('/tmp/') 
    #assumes macports is installed 
    local('sudo port install mercurial') 
    local('hg clone https://code.google.com/p/pymssql/') 
    os.chdir('/tmp/pymssql/') 
    local('python setup.py config') 
    local('python setup.py build') 
    local('python setup.py install') 
    return 
1

Got это работать с tdsver 7.2 см here

в контексте моей виртуальной среды:

pip install cython >> ok 
vim `locate Formula/freetds.rb` 
#:s:7.1:8.0:g # Change version 7.1 to 8.0... 
#:wq 
cd /tmp 
wget http://pypi.python.org/packages/source/p/pymssql/pymssql-1.0.2.tar.gz#md5=04dc4aa591acacbc8f183daeea21b690 
tar -xzvf pymssql-1.0.2.tar.gz 
cd pymssql-1.0.2 
python setup.py config 
python setup.py build 
sudo python setup.py install 

И, наконец, успех!

+0

Интересно - я создавал freetds с протоколом v8: ./configure --with-tdsver = 8.0 --enable-msdblib – MattK

+0

Да. Хорошо, pymssql установлен правильно, но ИТ НЕ ДОПУСКАЕТ РЕЗУЛЬТАТЫ, КОГДА Я СДЕЛАЛ ЗАПРОС! Установка его с версией 8.0 заставила его работать. –