【问题标题】:ImportError: No module named pyodbc (Windows )ImportError:没有名为 pyodbc 的模块(Windows)
【发布时间】:2015-01-18 19:17:23
【问题描述】:

Python 3.3, pip 已安装,PATH 为:

C:\Python33\Scripts 

我已下载visual c++ 2010,是否需要更改任何配置或将.bat 文件从vc++ 添加到python 33 包?

当我尝试安装 pyodbc 时,我得到以下信息:

C:\Users\elyon>pip install https://pyodbc.googlecode.com/files/pyodbc-3.0.7.zip Collecting https://pyodbc.googlecode.com/files/pyodbc-3.0.7.zip   Using cached https://pyodbc.googlecode.com/files/pyodbc-3.0.7.zip Installing collected packages: pyodbc   Running setup.py install for pyodbc
    building 'pyodbc' extension
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "c:\users\elyon\appdata\local\temp\pip-30p009-build\setup.py", lin e 288, in <module>
        main()
      File "c:\users\elyon\appdata\local\temp\pip-30p009-build\setup.py", lin e 108, in main
        setup(**kwargs)
      File "C:\Python33\lib\distutils\core.py", line 148, in setup
        dist.run_commands()
      File "C:\Python33\lib\distutils\dist.py", line 917, in run_commands
        self.run_command(cmd)
      File "C:\Python33\lib\distutils\dist.py", line 936, in run_command
        cmd_obj.run()
      File "C:\Python33\lib\site-packages\setuptools-12.0.3-py3.3.egg\setuptools \command\install.py", line 61, in run
      File "C:\Python33\lib\distutils\command\install.py", line 569, in run
        self.run_command('build')
      File "C:\Python33\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "C:\Python33\lib\distutils\dist.py", line 936, in run_command
        cmd_obj.run()
      File "C:\Python33\lib\distutils\command\build.py", line 126, in run
        self.run_command(cmd_name)
      File "C:\Python33\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "C:\Python33\lib\distutils\dist.py", line 936, in run_command
        cmd_obj.run()
      File "C:\Python33\lib\site-packages\setuptools-12.0.3-py3.3.egg\setuptools \command\build_ext.py", line 50, in run
      File "C:\Python33\lib\distutils\command\build_ext.py", line 347, in run
        self.build_extensions()
      File "C:\Python33\lib\distutils\command\build_ext.py", line 456, in build_ extensions
        self.build_extension(ext)
      File "C:\Python33\lib\site-packages\setuptools-12.0.3-py3.3.egg\setuptools \command\build_ext.py", line 183, in build_extension
      File "C:\Python33\lib\distutils\command\build_ext.py", line 511, in build_ extension
        depends=ext.depends)
      File "C:\Python33\lib\distutils\msvc9compiler.py", line 460, in compile
        self.initialize()
      File "C:\Python33\lib\distutils\msvc9compiler.py", line 371, in initialize

        vc_env = query_vcvarsall(VERSION, plat_spec)
      File "C:\Python33\lib\site-packages\setuptools-12.0.3-py3.3.egg\setuptools \msvc9_support.py", line 52, in query_vcvarsall
      File "C:\Python33\lib\distutils\msvc9compiler.py", line 287, in query_vcva rsall
        raise ValueError(str(list(result.keys())))
    ValueError: ['path']
    Complete output from command C:\Python33\python.EXE -c "import setuptools, t okenize;__file__='c:\\users\\elyon\\appdata\\local\\temp\\pip-30p009-build\\s etup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace(' \r\n', '\n'), __file__, 'exec'))" install --record c:\users\elyon\appdata\loc al\temp\pip-v0vcs5-record\install-record.txt
--single-version-externally-managed  --compile:
    running install

    running build

    running build_ext

    building 'pyodbc' extension

    Traceback (most recent call last):

      File "<string>", line 1, in <module>

      File "c:\users\elyon\appdata\local\temp\pip-30p009-build\setup.py", lin e 288, in <module>

        main()

      File "c:\users\elyon\appdata\local\temp\pip-30p009-build\setup.py", lin e 108, in main

        setup(**kwargs)

      File "C:\Python33\lib\distutils\core.py", line 148, in setup

        dist.run_commands()

      File "C:\Python33\lib\distutils\dist.py", line 917, in run_commands

        self.run_command(cmd)

      File "C:\Python33\lib\distutils\dist.py", line 936, in run_command

        cmd_obj.run()

      File "C:\Python33\lib\site-packages\setuptools-12.0.3-py3.3.egg\setuptools \command\install.py", line 61, in run

      File "C:\Python33\lib\distutils\command\install.py", line 569, in run

        self.run_command('build')

      File "C:\Python33\lib\distutils\cmd.py", line 313, in run_command

        self.distribution.run_command(command)

      File "C:\Python33\lib\distutils\dist.py", line 936, in run_command

        cmd_obj.run()

      File "C:\Python33\lib\distutils\command\build.py", line 126, in run

        self.run_command(cmd_name)

      File "C:\Python33\lib\distutils\cmd.py", line 313, in run_command

        self.distribution.run_command(command)

      File "C:\Python33\lib\distutils\dist.py", line 936, in run_command

        cmd_obj.run()

      File "C:\Python33\lib\site-packages\setuptools-12.0.3-py3.3.egg\setuptools \command\build_ext.py", line 50, in run

      File "C:\Python33\lib\distutils\command\build_ext.py", line 347, in run

        self.build_extensions()

      File "C:\Python33\lib\distutils\command\build_ext.py", line 456, in build_ extensions

        self.build_extension(ext)

      File "C:\Python33\lib\site-packages\setuptools-12.0.3-py3.3.egg\setuptools \command\build_ext.py", line 183, in build_extension

      File "C:\Python33\lib\distutils\command\build_ext.py", line 511, in build_ extension

        depends=ext.depends)

      File "C:\Python33\lib\distutils\msvc9compiler.py", line 460, in compile

        self.initialize()

      File "C:\Python33\lib\distutils\msvc9compiler.py", line 371, in initialize


        vc_env = query_vcvarsall(VERSION, plat_spec)

      File "C:\Python33\lib\site-packages\setuptools-12.0.3-py3.3.egg\setuptools \msvc9_support.py", line 52, in query_vcvarsall

      File "C:\Python33\lib\distutils\msvc9compiler.py", line 287, in query_vcva rsall

        raise ValueError(str(list(result.keys())))

    ValueError: ['path']

    ----------------------------------------
    Command "C:\Python33\python.EXE -c "import setuptools, tokenize;__file__='c: \\users\\elyon\\appdata\\local\\temp\\pip-30p009-build\\setup.py';exec(compil e(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file
__, 'exec'))" install --record c:\users\elyon\appdata\local\temp\pip-v0vcs5-r ecord\install-record.txt --single-version-externally-managed
--compile" failed w ith error code 1 in 
c:\users\elyon\appdata\local\temp\pip-30p009-build

这是代码:

import pyodbc
print pyodbc.dataSources()
print "Connecting via ODBC"
conn = pyodbc.connect("DRIVER={Netezza};SERVER=netezza201;PORT=5480;DATABASE=Test;UID=CompanyUser;PWD=Password!;")
cursor = conn.cursor()

【问题讨论】:

  • 您需要将python脚本路径(安装pip的位置)添加到您的PATH环境变量中。
  • 我在我的 c 驱动器中看到了 python27 和 python34 包...我已经删除了另一个包...而在我的系统变量中它指向 python27 和 python27/pip ..仍然当我做 pip删除另一个包后,我仍然找不到 pip 作为内部或外部命令
  • 试试这个指南来正确安装pipstackoverflow.com/questions/4750806/…
  • 我已经编辑了我的问题,并将 PATH 变量添加到我的脚本文件夹的路径中,但我仍然收到错误(请参阅更新后的问题)
  • Unable to install pyodbc的可能重复

标签: python pyodbc


【解决方案1】:

我在 Python 2.7.9 下使用 SQLAlchemy 遇到了这个问题,解决方案是在我的站点包文件夹中解压缩 pyodbc .egg 文件。 我必须注意,我没有自己编译它,我下载了二进制文件(pyodbc-3.0.7.win32-py2.7.exe)并使用easy_install pyodbc-3.0.7.win32-py2.7.exe安装它

P.S: 较新的 .whl 类型安装程序可以在 here 找到,您可以使用 pip install [.whl file] 安装它们。这也可能有助于您安装 pyodbc。


导航到您当前的 virtualenv 的 \Lib\site-packages 文件夹(如果您不使用 virtualenv,则在您的主要 Python 安装文件夹下)。

pyodbc-3.0.7-py2.7-win32.egg 重命名为pyodbc-3.0.7-py2.7-win32.zip

解压 zip 文件并将内容直接放在您的 \Lib\site-packages 文件夹中。

在我这样做之后,pyodbc 模块会被识别并且 SQLAlchemy 可以导入它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 2011-08-01
    • 2015-10-27
    相关资源
    最近更新 更多