python - una - No se puede instalar pyodbc en Linux
python y sql (13)
Estoy ejecutando Linux (2.6.18-164.15.1.el5.centos.plus) y estoy tratando de instalar pyodbc. Estoy haciendo pip install pyodbc y obtengo una larga lista de errores, que terminan en
error: el comando ''gcc'' falló con el estado de salida 1
Miré en /root/.pip/pip.log y vi lo siguiente:
InstallationError: Command / usr / local / bin / python -c "import setuptools; file = ''/ home / build / pyodbc / setup.py''; execfile (''/ home / build / pyodbc / setup.py'')" install - -single-version-externally-managed --record /tmp/pip-7MS9Vu-record/install-record.txt falló con el código de error 1
Alguien ha tenido un problema similar al instalar Pyodbc?
¿Qué hay de la instalación de pyobdc desde el archivo zip? Desde Cómo conectarse al servidor Sql de Microsoft desde Ubuntu usando pyODBC :
Descargar fuente vs apt-get
La utilidad apt-get en Ubuntu tiene una versión de pyODBC. (versión 2.1.7).
Sin embargo, está muy desactualizado (2.1.7 vs 3.0.6) y puede no funcionar bien con las versiones más recientes de unixODBC y freetds.
Esto es especialmente importante si intenta conectarse a versiones posteriores de Microsoft Sql Server (2008 en adelante).
Se recomienda que utilice las últimas versiones de unixODBC, freetds y pyODBC cuando trabaje con el último servidor Sql de Microsoft en lugar de confiar en paquetes en apt-get.
Agregando una respuesta más a esta pregunta. Para la versión Debian Stretch de Linux necesitarás instalar las siguientes dependencias:
apt-get update
apt-get install g++
apt-get install unixodbc-dev
pip install pyodbc
Ejecute los siguientes comandos (probado en centos 6.5):
yum install install unixodbc-dev
yum install gcc-c++
yum install python-devel
pip install --allow-external pyodbc --allow-unverified pyodbc pyodbc
En Ubuntu, necesitarás instalar unixodbc-dev:
sudo apt-get install unixodbc-dev
Instala pip usando este comando:
sudo apt-get install python-pip
una vez instalado, debe poder instalar pyodbc con éxito:
pip install pyodbc
He hecho referencia a esta pregunta varias veces y seguí buscando la respuesta que estaba buscando aquí: pyodbc wiki
Para evitar el error de gcc en Ubuntu Linux, lo hice:
sudo aptitude install g++
También instalé los siguientes 2 paquetes de Synaptic:
python-dev
tdsodbc
Luchado con el mismo problema
Después de ejecutar: sudo apt-get install unixodbc-dev
Pude instalar pipbcc
Necesitaba todo eso, pero también necesitaba python devel installed:
sudo yum install python-devel
Sé que esta es una vieja pregunta, pero el mantenedor tiene un pyodbc
GitHub Repo .
También encontré un muy buen ejemplo para instalar FreeTDS y configurar los archivos de configuración .
Seguir las instrucciones en los documentos de GitHub me parece que siempre es la mejor opción. A partir de febrero de 2018, para CentOs7 (tienen todos los sabores en el enlace) dicen:
# Add the RHEL 6 library for Centos-7 of MSSQL driver. Centos7 uses RHEL-6 Libraries.
sudo su
curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
# Uninstall if already installed Unix ODBC driver
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
# Install the msodbcsql unixODBC-utf16 unixODBC-utf16-devel driver
sudo ACCEPT_EULA=Y yum install msodbcsql
#optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install mssql-tools
echo ''export PATH="$PATH:/opt/mssql-tools/bin"'' >> ~/.bash_profile
echo ''export PATH="$PATH:/opt/mssql-tools/bin"'' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install unixODBC-devel
# the Microsoft driver expects unixODBC to be here /usr/lib64/libodbc.so.1, so add soft links to the ''.so.2'' files
cd /usr/lib64
sudo ln -s libodbccr.so.2 libodbccr.so.1
sudo ln -s libodbcinst.so.2 libodbcinst.so.1
sudo ln -s libodbc.so.2 libodbc.so.1
# Set the path for unixODBC
export ODBCINI=/usr/local/etc/odbc.ini
export ODBCSYSINI=/usr/local/etc
source ~/.bashrc
# Prepare a temp file for defining the DSN to your database server
vi /home/user/odbcadd.txt
[MyMSSQLServer]
Driver = ODBC Driver 13 for SQL Server
Description = My MS SQL Server
Trace = No
Server = 10.100.1.10
# register the SQL Server database DSN information in /etc/odbc.ini
sudo odbcinst -i -s -f /home/user/odbcadd.txt -l
# check the DSN installation with:
odbcinst -j
cat /etc/odbc.ini
# should contain a section called [MyMSSQLServer]
# install the python driver for database connection
pip install pyodbc
Siga los pasos a continuación para instalar pyodbc en cualquier versión de redhat
yum install unixODBC unixODBC-devel
yum install gcc-c++
yum install python-devel
pip install pyodbc
Tuve el mismo problema en CentOS 5.5
Además de instalar unixODBC-devel también tuve que instalar gcc-c ++
yum install gcc-c++
Una forma fácil de instalar pyodbc es usar ''conda''. Como conda instala automáticamente las dependencias requeridas, incluyendo unixodbc.
conda --ugrade all
(opcional)
luego conda install pyodbc
instalará los siguientes paquetes:
libgfortran-ng: 7.2.0-hdf63c60_3 defaults mkl: 2018.0.3-1 defaults mkl_fft: 1.0.2-py36_0 conda-forge mkl_random: 1.0.1-py36_0 conda-forge numpy-base: 1.14.5-py36hdbf6ddf_0 defaults pyodbc: 4.0.17-py36_0 conda-forge unixodbc: 2.3.4-1 conda-forge
Usé esto:
yum install unixODBC.x86_64
Dependiendo de la versión de centos podría cambiar el paquete, puede buscar de esta manera:
yum search unixodbc
Resolví mi problema siguiendo las instrucciones correctas en pyodbc - Building wiki que dice:
En Linux, pyodbc generalmente se genera utilizando los encabezados de unixODBC, por lo que necesitará tener instalados unixODBC y sus encabezados. En un cuadro de RedHat / CentOS / Fedora, esto significa que necesitaría instalar unixODBC-devel:
yum install unixODBC-devel