mysql - 在 Jupyter 笔记本、Conda 环境、Python 3.6 上找不到 MySQL

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

我一直在尝试从我创建的 conda 环境中的 jupyter notebook 使用 MySQL 数据库。

我的第一次尝试没有成功,在这里:

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

我试过安装它们,其中一些使用 conda install,一些使用 pip,始终使用我激活的环境,我也从中安装启动我的 jupyter notebook 实例。

我得到的行为总是相同的:安装包后,我可以运行交互式 python session ,在其中,我可以正确导入包并使用它们,甚至可以从数据库。但是,当我从笔记本上执行此操作时,找不到任何模块,这就是我被困的地方。

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

环境:

  • Windows 10,64 位
  • python =3.6
  • conda 列表:

    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?

最佳答案

通过 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 返回预期路径。

关于mysql - 在 Jupyter 笔记本、Conda 环境、Python 3.6 上找不到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50092544/

相关文章:

php - MySQl 前导零被存储但显示错误

python - str 到 python 3 中的时间对象

MySQL:多个子查询和连接子句中的 where

c# - 更改行时 SQL 查询不更新表

Python 3 httplib2 cookie

python - PyInstaller with Pandas 创建超过 500 MB 的 exe

python - 安装了 Anaconda 4.3.1(64 位),其中包含 Python 3.6 但缺少 pip3,无法安装 tensorflow

shell - 激活 conda 失败(采购 ~/.bashrc)

mysql - 事务回滚在 karaf 中不起作用

python - Beautifulsoup的语法错误