我正在尝试在Windows计算机上导入pyodbc
模块。它适用于终端,但不适用于IDLE。 IDLE中的错误消息是:
Traceback (most recent call last):
File "FilePath/Filename.py", line 3, in <module>
import pyodbc
ImportError: No module named pyodbc
答案 0 :(得分:4)
当使用不同路径安装多个版本的python时,通常会发生这种情况。您可以通过打开IDLE终端并使用
来检查是否有多个安装import sys
sys.version
sys.path
这些命令将打印系统PATH和当前python实例的版本。在IDLE和命令行终端中使用它来查看每个不同的位置。一旦你知道你想要的那个版本,那么就删除另一个版本。您也可以删除所有python实例,然后重新安装一个干净的python环境,但是你必须使用pip或easy_install重新安装所有模块
答案 1 :(得分:1)
python
,然后按Enter键)import modulename
)导入模块modulename.__file__
import sys
并键入sys.executable
以获得寻找要导入模块的路径这种方法对我有用。
答案 2 :(得分:1)
您可以在安装软件包后pip show
并了解软件包的安装位置。
之后,请检查IDLE sys.path
,如果目录中的软件包不在sys.path
中,请尝试添加。
import sys sys.path.append("/home/dm/.local/lib/python3.6/site-packages") # or another folder that `pip show` about package.
答案 3 :(得分:0)
我找到了解决方案。它对我有用
问题是您的安装目录与python版本目录不匹配。
解决方案是>>>
答案 4 :(得分:0)
发生这种情况是因为安装了多个python(32位版本,64位版本)或3v和2.7v,所以要解决此问题,您必须针对该特定版本调用idle
cd
到导入可以在cmd中正常工作的版本的dir
在该文件夹中键入以下命令
pythonw.exe Lib\idlelib\idle.pyw
此命令将为该版本调用空闲 并且导入将正常工作
答案 5 :(得分:0)
当您将导入了大熊猫的python脚本放置在与站点软件包(例如pandas)相同的文件夹中,并使用CMD上使用的相同版本的python时,它将有助于在IDLE中运行脚本。
答案 6 :(得分:0)
检查代码的路径和模块的路径。将模块复制到代码为我工作的路径。 'sys.executable' 将给出存储代码的路径。
答案 7 :(得分:0)
我在尝试导入已在终端上成功导入但无法在 IDLE 上安装的模块时也遇到了同样的问题。
我是如何修复的?
假设您知道如何在终端以及 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']
>>>
现在在你的 python3 解释器中导入你的模块。
>>> import nester
>>>
>>> nester.__file__
'/usr/local/lib/python3.6/dist-packages/nester.py'
>>>
打开您的 IDLE 并运行以下命令并进行比较
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
['','C:\Users\username\AppData\Local\Programs\Python\Python39\Lib\idlelib','C:\Users\username\AppData\Local\Programs\Python\Python39\python39. zip', 'C:\Users\username\AppData\Local\Programs\Python\Python39\DLLs', 'C:\Users\username\AppData\Local\Programs\Python\Python39\lib', 'C:\Users \username\AppData\Local\Programs\Python\Python39', 'C:\Users\username\AppData\Local\Programs\Python\Python39\lib\site-packages']
>>> sys.executable
'C:\Users\username\AppData\Local\Programs\Python\Python39\pythonw.exe'
现在,如果您比较 Terminal 和 IDLE 的两个输出,
所以我只是将我的文件复制到“C”目录并确保其文件权限。就是这样。
:~$ cp -p /usr/local/lib/python3.6/dist-packages/nester.py /mnt/c/Users/username/AppData/Local/Programs/Python/Python39/Lib/
成功了!!