Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说pyodbc linux 乱码,关于python:无法在Linux上安装pyodbc,希望能够帮助你!!!。
我正在运行Linux(2.6.18-164.15.1.el5.centos.plus)并尝试安装pyodbc。 我正在做pip install pyodbc并得到一个很长的错误列表,最终以
error: command 'gcc' failed with exit status 1
我查看了/root/.pip/pip.log并看到以下内容:
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 failed with error code 1
安装pyodbc有没有类似的问题?
在Ubuntu上,你需要安装unixodbc-dev:
sudo apt-get install unixodbc-dev
使用以下命令安装pip:
sudo apt-get install python-pip
一旦安装,您应该能够成功安装pyodbc:
pip install pyodbc
我之前需要安装python-devel才能使用。
Yesssss!这是我使用的第五个解决方案和一个有效的解决方案,谢谢:)
那很有效!我收到错误"无法找到包",但运行sudo apt-get update首先修复它。
它对我有用
也为我工作过。谢谢你!
对于Ubuntu上的python 3.7,另外运行sudo apt-get install python3.7-dev
我按照pyodbc上的正确指示解决了我的问题 - 构建维基,其中指出:
On Linux, pyodbc is typically built using the unixODBC headers, so you will need unixODBC and its headers installed. On a RedHat/CentOS/Fedora box, this means you would need to install unixODBC-devel:
yum install unixODBC-devel
它失败了... SyntaxError:无效语法文件"/ usr / libexec / urlgrabber-ext-down",第28行除了OSError,e:^语法错误:语法无效退出用户取消
@famargar你升级了你的Linux发行版?
我使用的是Centos 7和Linux 3.10.0-957.5.1.el7.x86_64。他们知道pyodbc有问题吗?
按照以下步骤在任何redhat版本中安装pyodbc
yum install unixODBC unixODBC-devel
yum install gcc-c++
yum install python-devel
pip install pyodbc
在这个问题上再添一个答案。
对于Linux Debian Stretch版本,您需要安装以下依赖项:
apt-get update
apt-get install g++
apt-get install unixodbc-dev
pip install pyodbc
在Debian Slim图像上,我需要在安装pyodbc之前包含g ++。
@Snympi是的,这就是为什么上面的命令包括apt-get install g++;)
非常感谢,你的答案适用于我的Debian GNU / Linux 9,但g ++可以忽略不计。
执行以下命令(在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
挣扎着同样的问题
运行后:
sudo apt-get install unixodbc-dev
我能够安装pyodbc
这对我来说在circlecis图像上使用python 3.7。
我已经多次引用这个问题,然后继续实际找到我在这里寻找的答案:
pyodbc wiki
To avoid gcc error on Ubuntu Linux, I did:
sudo aptitude install g++
I also installed the following 2 packages from Synaptic:
python-dev
tdsodbc
或者如果你在Ubuntu上:sudo apt-get install g++之后,我能够将安装到我的venv中。谢谢!
我在CentOS 5.5上遇到了同样的问题
除了安装unixODBC-devel之外,我还必须安装gcc-c ++
yum install gcc-c++
安装pyodbc的简单方法是使用'conda'。由于conda自动安装所需的依赖项,包括unixodbc。
conda --ugrade all(可选)
然后
conda install pyodbc
它将安装以下包:
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
根据Ubuntu 18.04的官方微软文档,你应该运行下一个命令:
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
apt-get update
ACCEPT_EULA=Y apt-get install msodbcsql17
exit
如果您使用的是python3.7,则运行以下内容非常重要:
sudo apt-get install python3.7-dev
就我而言(亚马逊Linux AMI),以上都没有奏效。以下工作(来自这里的想法):
找到文件cc1plus的路径。对我来说,它是在/usr/libexec/gcc/x86_64-amazon-linux/4.8.5/cc1plus。对你而言,它可能会有所不同。尝试ls -l /usr/libexec/gcc找到正确的目录名称并继续。
在路径中查找目录:echo $PATH(对我来说/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin)
在PATH:sudo ln -s /PATH/TO/cc1plus /DIRinPATH/的其中一个目录中放置cc1plus的链接
例如在我的情况下:
sudo ln -s /usr/libexec/gcc/x86_64-amazon-linux/4.8.5/cc1plus /usr/bin/
我遇到了同样的问题。对于python3.6.8和ubuntu 16.04以上都没有帮助我。
sudo apt-get install python3.6-dev
这解决了我的问题。
如何从zip文件安装pyobdc?从如何使用pyODBC从Ubuntu连接到Microsoft Sql Server:
Download source vs apt-get
The apt-get utility in Ubuntu does have a version of pyODBC. (version 2.1.7).
However, it is badly out-of-date (2.1.7 vs 3.0.6) and may not work well with the newer versions of unixODBC and freetds.
This is especially important if you are trying to connect to later versions of Microsoft Sql Server (2008 onwards).
It is recommended that you use the latest versions of unixODBC, freetds and pyODBC when working with the latest Microsoft Sql Server instead of relying on packages in apt-get.
编译终止。错误:命令i686-linuxgnu-gccc失败,退出状态为1
警告:命令行选项-Wstrict-prototypes对c / Objc有效但对C ++无效[默认启用]
apt-get install aptitude aptitude install g ++ apt-get install python-dev python ./setup.py install
我需要所有这些,但我还需要安装python devel:
sudo yum install python-devel
我知道这是一个老问题,但维护者有一个pyodbc GitHub Repo。
我还找到了安装FreeTDS和设置配置文件的一个很好的例子。
遵循GitHub上的说明文档在我看来始终是最好的选择。截至2018年2月,对于CentOs7(他们在链接上有各种口味),他们说:
# 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
什么是这些之后的命令
嗨Shubham,对不起,我不明白你的问题。键入pip install pyodbc后,假设其他一切正常,您将同时安装驱动程序和软件包并且可用。您将"简单地使用"包,创建连接对象和光标,类似于对DB的任何其他编程访问。您可以查看他们的文档以获取示例。
非常感谢@mike,我解决了问题
@ShubhamSharma很酷,很高兴我能帮忙!
我用过这个:
yum install unixODBC.x86_64
根据centos的版本可能会更改包,您可以像这样搜索:
yum search unixodbc
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。