无法在Jupyter笔记本,Conda环境,Python 3.6上找到MySQL

时间:2018-04-30 00:17:32

标签: mysql python-3.x anaconda jupyter-notebook

我一直试图从我创建的conda环境中使用jupyter笔记本中的MySQL数据库。

我的第一次尝试不起作用,在这里:

  • 使用trackBy
  • 使用sqlalchemy
  • 使用mysql-connector-python

我已尝试安装它们,其中一些使用pymysql,其中一些使用conda install,总是使用我已激活的环境,我也从中启动了我的jupyter笔记本实例

我得到的行为总是一样的:在安装软件包之后,我可以运行一个交互式pip会话,在其中,我可以正确导入软件包并使用它们,甚至可以从数据库中获取结果。但是,当我从笔记本电脑上做到这一点时,找不到任何模块,而这就是我被困住的地方。

我看到的一些旧帖子提到它们不适用于Python 3.x或Windows或64位系统,但这些答案大约在2016年,因此它们会更新,并且包的conda描述声称它们在我的Windows 10,x64,python = 3.6环境中正常工作(或者我解释了)。

环境:

  • Windows 10,64位
  • 蟒= 3.6
  • python

    conda list

(某些mysql软件包不存在,因为在尝试失败后,我删除了它们。)

如何让笔记本找到模块以便连接到MySQL?

1 个答案:

答案 0 :(得分:1)

通过Chris在评论中提供的链接,我能够弄明白。 (非常感谢!)

第一步是验证jupyter正在环境安装它们的同一个地方寻找笔记本电脑。一个简单的方法是:

在控制台上:

activate myEnv
python
>>> import sys
>>> sys.executable
'C:\\Users\\myUser\\Anaconda3\\envs\\myEnv\\python.exe'

里面的jupyter:

import sys
sys.executable

'C:\\Users\\myUser\\Anaconda3\\python.exe'

正如您所看到的,在这种情况下,jupyter正在运行环境的外部,这就是为什么它没有找到已安装的软件包。

然后 - 为什么会发生这种情况?我在启动jupyter之前激活了环境。我是否有可能无意中运行错误版本的Jupyter?

where jupyter
C:\Users\myUser\Anaconda3\Scripts\jupyter.exe
啊 - 我正在运行一个错误版本的jupyter。那一定是因为我没有在环境中安装的jupyter。

conda install jupyter
# ... installation process ...

where jupyter
C:\Users\myUser\Anaconda3\envs\myEnv\Scripts\jupyter.exe
C:\Users\myUser\Anaconda3\Scripts\jupyter.exe

现在,环境jupyter可执行文件应该优先。执行jupyter后,行为符合预期,sys.executable返回预期路径。