ModuleNotFoundError:将pyodbc导入py脚本时,没有名为“ pyodbc”的模块

时间:2018-08-29 19:56:49

标签: python sql sql-server sqlite pyodbc

我写了一个简短的python脚本,试图导入pyodbc扩展包,以便可以访问我的SQL表。

import pyodbc as pyodbc
cnxn = pyodbc.connect('Driver={SQL Server};'
                      'Server=DESKTOP-UO8KJOP;'
                      'Database=ExamplePFData'
                      'Trusted_Connection=yes;')

我肯定使用以下方法安装了扩展程序:pip install pyodbc。当我再次安装它时,cmd会说:要求已经满足:pyodbc在...中,我已经在目录中找到pyd文件。

我还尝试安装pypyodbc,该方法无效。

我得到的错误是:

Traceback (most recent call last):
File "C:\Users\Jerry\Documents\Python\SQLembed.py", line 5, in <module>
import pyodbc as pyodbc
ModuleNotFoundError: No module named 'pyodbc'

(其中第5行是“ import pyodbc”行)

我尝试将pyodbc.cp37-win_amd64.pyd文件复制到我的Python脚本文件夹和pip.exe文件所在的文件夹中。

  • 当前python是我的Python37文件夹。
  • pyodbc.cp37-win_amd64.pyd在Python>库>网站程序包中。

任何人都可以帮助我解决此错误,以便我导入pyodbc吗?

我通过pip安装的所有python扩展/模块是否都需要与python.exe位于同一文件夹/目录中?

7 个答案:

答案 0 :(得分:1)

此处有一个有用的分步指南:https://docs.microsoft.com/en-us/sql/connect/python/pyodbc/step-1-configure-development-environment-for-pyodbc-python-development?view=sql-server-2017

作为参考,本指南(windows)中的步骤是(假设您已经安装了python):

  1. https://docs.microsoft.com/en-us/sql/connect/odbc/windows/system-requirements-installation-and-driver-files?view=sql-server-2017#installing-microsoft-odbc-driver-for-sql-server
  2. 在Windows上安装SQL Server的Microsoft ODBC驱动程序
  3. 以管理员身份打开cmd.exe
  4. 导航到包含pip的python脚本文件夹
  5. 类型:pip install pyodbc

答案 1 :(得分:0)

几天前,我遇到了相同的错误!幸运的是,我找到了答案。

您知道,问题在于pyodbc包含在.whl(车轮)文件/软件包中。因此,结果是您必须pip安装它。

Pip安装是一个非常棘手的过程,因此请小心。步骤是:-

步骤1。转到C:/ Python(无论使用什么版本)/脚本。向下滚动。如果看到名为pip.exe的文件,则表明您在正确的文件夹中。复制路径。

步骤2。在您的计算机中,搜索环境变量。您应该看到一个标签为“编辑系统环境变量”的选项。点击它。

第3步。在那里,您应该看到一个对话框。点击“环境变量”。点击“路径”。然后,点击“新建”。粘贴您先前复制的路径。

第4步。点击“确定”。

第5步。打开Windows文件资源管理器。 Shift +右键单击您的pyodbc.whl文件的安装位置。从下拉菜单中选择“在此处打开命令窗口”。输入“ pip install py”,然后单击“选项卡”,然后应填写完整的文件名。然后,按Enter,您就可以开始了!现在您不应该再得到该错误!!!

答案 2 :(得分:0)

我也面临同样的问题。您可以尝试以下方法:

a)您可以安装用于SQL Server的ODBC驱动程序。访问:
https://docs.microsoft.com/en-us/sql/connect/odbc/windows/system-requirements-installation-and-driver-files?view=sql-server-2017#installing-microsoft-odbc-driver-for-sql-server

b)卸载Python,然后关闭所有IDLE,然后再次安装Python。这对我有用。

答案 3 :(得分:0)

似乎您已经安装了 pyodbc模块,但是正在尝试从其他环境中引用它。

某些步骤:

  1. 在“解决方案资源管理器”窗口中右键单击“ Python环境”
  2. 选择添加/删除
  3. 选择您想要的python解释器。

引用:How to switch your project python environment to the one which includes pyodbc

答案 4 :(得分:0)

我遇到了同样的问题。

  

导入系统

     

print(sys.path)

事实证明,我正在使用的IDE(JetBrains的PyCharm)有一个必须安装pyodbc的目录。我使用cmd行提示符导航到PyCharm目录,并在那里重新安装了pip。

答案 5 :(得分:0)

尝试在生产服务器上运行脚本时,我有绝对相同的错误。 pip成功安装了pyodbc。它的文件位于我运行的...\Lib\site-packages的位置python.exe中(以cmd为单位)。但是python仍然找不到它。我已经尝试过手动重新安装它,但是没有任何改变。

然后我注意到prod上的python版本比开发版上的3.8.1更新。因此,我安装了旧版本的python 3.6.5(在其他目录中),并向其安装了pyodbc。

您怎么看? -现在一切正常!

答案 6 :(得分:0)

问题在于环境。你必须执行

.venv\Scripts\activate