首页 > 解决方案 > ModuleNotFoundError: No module named 'surprise' and others(我有各种版本的 python)

问题描述

我现在通过 mysql-python-connector 将 python 与 mysql 一起使用,但是模块导入存在一些问题。

我像这样导入模块。

import mysql.connector
import os
import surprise
from surprise import Dataset
from surprise import Reader
from collections import defaultdict
import numpy as np
import pandas as pd
from sklearn import tree
import graphviz
from mlxtend.frequent_patterns import association_rules, apriori

当我像这样在python shell(VScode终端)中导入模块时

Shins-MacBook-Pro:part2 yunnys$ python
Python 3.6.8 (default, Apr 11 2020, 15:36:35) 
[GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.33.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import surprise
>>> from surprise import Reader
>>>

有用

但是当我运行我的python项目时

Shins-MacBook-Pro:part2 yunnys$ /usr/local/bin/python3 /Users/yunnys/Desktop/part2/DMA_project2_team00.py
Traceback (most recent call last):
  File "/Users/yunnys/Desktop/part2/DMA_project2_team00.py", line 7, in <module>
    import surprise
ModuleNotFoundError: No module named 'surprise'
Shins-MacBook-Pro:part2 yunnys$

它说它找不到模块..有什么问题?

我使用 pyenv,当我使用 $pyenv 版本时,我可以看到这一点。

  system
* 3.6.8 (set by /Users/yunnys/.pyenv/version)
  3.6.8/envs/seminar
  3.7.7
  3.8.0
  seminar

我可以看到模块已经存在。

Shins-MacBook-Pro:part2 yunnys$ pip3 list
Package                    Version
-------------------------- -------
graphviz                   0.14
joblib                     0.15.1
mysql                      0.0.2
mysql-connector-python     8.0.20
mysql-connector-repackaged 0.3.1
mysqlclient                1.4.6
numpy                      1.18.4
pandas                     1.0.3
pip                        20.1.1
protobuf                   3.12.1
python-dateutil            2.8.1
pytz                       2020.1
scikit-learn               0.23.1
scikit-surprise            1.1.0
scipy                      1.4.1
setuptools                 40.6.2
six                        1.15.0
surprise                   0.1
threadpoolctl              2.0.0

这是pypath!

Shins-MacBook-Pro:part2 yunnys$ python
Python 3.6.8 (default, Apr 11 2020, 15:36:35) 
[GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.33.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/Users/yunnys/Desktop/part2', '/home/user/mymodule', '/Users/yunnys/.pyenv/versions/3.6.8/lib/python36.zip', '/Users/yunnys/.pyenv/versions/3.6.8/lib/python3.6', '/Users/yunnys/.pyenv/versions/3.6.8/lib/python3.6/lib-dynload', '/Users/yunnys/.pyenv/versions/3.6.8/lib/python3.6/site-packages']
>>> 

标签: pythonmysqlmoduleimporterror

解决方案


哦,我解决了。我将 VS 代码中的 python 版本从 3.8.2 更改为 3.6.8,它现在可以工作了!VS 代码是否在与系统不同的版本中使用 python?!

VS 代码


推荐阅读