我正在尝试在 Windows 计算机上导入
pyodbc
模块。它可以在终端中运行,但不能在 IDLE 中运行。 IDLE 中的错误消息是:
Traceback (most recent call last):
File "FilePath/Filename.py", line 3, in <module>
import pyodbc
ImportError: No module named pyodbc
当使用不同路径安装多个版本的 python 时,通常会发生这种情况。您可以通过打开 IDLE 终端并使用
检查是否有多个安装import sys
sys.version
sys.path
这些命令将打印系统路径和当前 python 实例的版本。在 IDLE 和命令行终端中使用它来查看两者的不同之处。一旦您知道您想要哪个版本,只需删除另一个版本即可。您还可以删除所有 python 实例,然后重新安装干净的 python 环境,但随后您必须使用 pip 或 easy_install 重新安装所有模块
python
并按回车键)import modulename
)modulename.__file__
import sys
并输入 sys.executable
以获取查找要导入的模块的路径这个方法对我有用。
您可以在安装软件包后
pip show
了解软件包的安装位置。
之后检查 IDLE
sys.path
,如果包含包的目录不在 sys.path
中,请尝试添加它。
导入系统 sys.path.append("/home/dm/.local/lib/python3.6/site-packages") # 或另一个关于包的 `pip show` 文件夹。
发生这种情况是因为安装了多个Python(32位版本,64位版本)或3v和2.7v,所以要解决这个问题,你必须像这样调用该特定版本的
idle
cd
到 dir
的版本,在 cmd 中导入可以正常工作,在该文件夹中键入以下命令
pythonw.exe Lib\idlelib\idle.pyw
此命令将调用该版本的空闲 并且导入会正常工作
我是如何修复的?
假设您知道如何在终端以及 python 解释器内部执行命令
:~$ python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
>>> import sys
>>> sys.version
'3.6.9 (default, Jan 26 2021, 15:33:00) \n[GCC 8.4.0]'
>>> sys.path
['', '/usr/lib/python36.zip', '/usr/lib/python3.6',
'/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-
packages', '/usr/lib/python3/dist-packages']
>>>
>>> import nester
>>>
>>> nester.__file__
'/usr/local/lib/python3.6/dist-packages/nester.py'
>>>
Python 3.9.1 (tags/v3.9.1:1e5d33e, Dec 7 2020, 17:08:21) [MSC v.1927
64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more
information.
>>> import sys
>>> sys.version
'3.9.1 (tags/v3.9.1:1e5d33e, Dec 7 2020, 17:08:21) [MSC v.1927 64 bit
(AMD64)]'
>>> sys.path
>>> sys.executable
'C:\Users\用户名\AppData\Local\Programs\Python\Python39\pythonw.exe'现在,如果您比较终端和 IDLE 的输出,
:~$ cp -p /usr/local/lib/python3.6/dist-packages/nester.py /mnt/c/Users/username/AppData/Local/Programs/Python/Python39/Lib/
成功了!
我找到了解决方案。对我有用
问题是你的安装目录和python版本目录不匹配。
解决方案是>>>
pip show pyodbc
以获取包的路径并复制该路径。 然后打开空闲并运行这些行
import sys
sys.path
将命令提示符中的路径与在 IDLE 中运行上述行提供的列表中提到的路径进行匹配。如果未提及路径,则在空闲状态下运行这些行
sys.path.append("Enter the copied path of package here")
执行这些行后,通过导入包再次检查它是否适合您。