我一直在尝试从我创建的conda环境中使用jupyter笔记本中的mysql数据库。
我的第一次尝试没有成功,在这里:
使用 sqlalchemy
使用 mysql-connector-python
使用 pymysql
我试过安装它们,有些是用 conda install
,其中一些使用 pip
,始终使用我激活的环境,从中我还启动了我的jupyter笔记本示例。
我得到的行为总是一样的:在安装包之后,我可以运行一个交互式的 python
在会话中,我可以正确地导入和使用包,甚至从数据库中获得结果。但是当我在笔记本上做的时候,没有一个模块被找到,这就是我被卡住的地方。
我看到的一些旧帖子提到,它们不适用于Python3.x或windows,也不适用于64位系统,但这些答案大约在2016年更新,因此这些软件包的conda描述声称它们在我的Windows10、x64、python=3.6环境中正常工作(或者我解释的那样)。
环境:
windows 10,64位
python=3.6 conda list
:
backcall 0.1.0 <pip>
certifi 2018.4.16 py36_0
colorama 0.3.9 <pip>
decorator 4.3.0 <pip>
ipython 6.3.1 <pip>
ipython-genutils 0.2.0 <pip>
jedi 0.12.0 <pip>
mysql-connector-python 2.0.4 py36_0
mysqlclient 1.3.12 <pip>
parso 0.2.0 <pip>
pickleshare 0.7.4 <pip>
pip 9.0.3 py36_0
prettytable 0.7.2 <pip>
prompt-toolkit 1.0.15 <pip>
Pygments 2.2.0 <pip>
python 3.6.5 h0c2934d_0
setuptools 39.0.1 py36_0
simplegeneric 0.8.1 <pip>
six 1.11.0 <pip>
SQLAlchemy 1.2.7 <pip>
sqlparse 0.2.4 <pip>
traitlets 4.3.2 <pip>
vc 14 h0510ff6_3
vs2015_runtime 14.0.25123 3
wcwidth 0.1.7 <pip>
wheel 0.31.0 py36_0
wincertstore 0.2 py36h7fe50ca_0
(有些mysql包不存在,因为在尝试失败后,我删除了它们。)
如何让笔记本找到模块以便连接到mysql?
1条答案
按热度按时间c9x0cxw01#
有了chris提供的关于评论的链接,我就明白了(非常感谢!)
第一步是验证jupyter是否在环境安装笔记本的同一位置查找笔记本。一个简单的方法是:
在控制台上:
jupyter内部:
如您所见,本例中的jupyter是在环境之外运行的,这就是它找不到已安装包的原因。
但是——为什么会这样?在启动jupyter之前我激活了环境。有没有可能我无意中运行了一个错误版本的jupyter?
啊——我运行了一个错误的jupyter版本。那一定是因为我没有在环境中安装jupyter。
所以现在,环境jupyter可执行文件应该优先。执行jupyter后,行为与预期一致,并且
sys.executable
返回预期路径。