Python 导入错误:没有名为 pyodbc 的模块(Windows)
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/28013745/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
ImportError: No module named pyodbc (Windows )
提问by elyon
Python 3.3
, pip
is installed and PATH is:
Python 3.3
,pip
已安装且 PATH 为:
C:\Python33\Scripts
I have downloaded visual c++ 2010
, do I need to change any configuration or add the .bat
file to python 33 package from vc++
?
我已经下载了visual c++ 2010
,是否需要更改任何配置或将.bat
文件添加到 python 33 包中vc++
?
When I try to install pyodbc
I get the following:
当我尝试安装时,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
This is the code:
这是代码:
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()
回答by Erik Oosterwaal
I had this problem under Python 2.7.9 using SQLAlchemy and the solution was to unpack the pyodbc .egg file in my site-packages folder.
I must note that I didn't compile it myself, I downloaded the binary (pyodbc-3.0.7.win32-py2.7.exe) and I installed it using easy_install pyodbc-3.0.7.win32-py2.7.exe
我在使用 SQLAlchemy 的 Python 2.7.9 下遇到了这个问题,解决方案是在我的站点包文件夹中解压 pyodbc .egg 文件。我必须注意,我没有自己编译它,我下载了二进制文件(pyodbc-3.0.7.win32-py2.7.exe)并使用easy_install pyodbc-3.0.7.win32-py2.7.exe
P.S: Newer .whl type installers can be found here, you can install them using pip install [.whl file]
. That might also help you get pyodbc installed.
PS:可以在此处找到较新的 .whl 类型安装程序,您可以使用.whl安装它们pip install [.whl file]
。这也可能有助于您安装 pyodbc。
Navigate to the \Lib\site-packages
folder for your current virtualenv (or under your main Python installation folder if you're not using a virtualenv).
导航到\Lib\site-packages
当前 virtualenv 的文件夹(如果不使用 virtualenv,则导航到主要 Python 安装文件夹下)。
Rename pyodbc-3.0.7-py2.7-win32.egg
to pyodbc-3.0.7-py2.7-win32.zip
.
重命名pyodbc-3.0.7-py2.7-win32.egg
为pyodbc-3.0.7-py2.7-win32.zip
.
Extract the zip file and place the contents directly in your \Lib\site-packages
folder.
解压缩 zip 文件并将内容直接放在您的\Lib\site-packages
文件夹中。
After I did this the pyodbc module go recognised and SQLAlchemy could import it.
在我这样做之后,pyodbc 模块被识别出来,SQLAlchemy 可以导入它。