Не могу найти MySQL на ноутбуках Jupyter, Conda Environment, Python 3.6 - PullRequest
0 голосов
/ 30 апреля 2018

Я пытался использовать базу данных MySQL из ноутбука Jupyter из среды conda, которую я создал.

Мои первые попытки не сработали, что здесь:

  • с использованием sqlalchemy
  • с использованием mysql-connector-python
  • с использованием pymysql

Я пытался установить их, некоторые с использованием conda install, некоторые с использованием pip, всегда в среде, которую я активировал, из которой я также запускаю свой экземпляр ноутбука jupyter.

Поведение, которое я получаю, всегда одинаково: после установки пакетов я могу запустить интерактивную сессию python, и в ней я могу правильно импортировать пакеты и использовать их, даже получать результаты из базы данных. Но когда я делаю это из ноутбука, ни один из модулей не обнаруживается , и вот где я застрял.

В некоторых старых сообщениях, которые я видел, упоминалось, что они недоступны для Python 3.x или для Windows, или для 64-битных систем, но эти ответы около 2016 года, поэтому они обновлены, и в описании conda пакетов утверждается, что они работать правильно в моей среде Windows 10, x64, python = 3.6 (или так я интерпретировал).

Окружающая среда:

  • Windows 10, 64 бит
  • 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 Ответ

0 голосов
/ 04 мая 2018

С помощью ссылки, предоставленной Крисом на комментарии, я смог понять это. (Большое спасибо!)

Первым шагом было подтверждение того, что jupyter ищет ноутбуки в том же месте, где их устанавливает среда. Простой подход к этому:

На консоли:

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

Внутри Юпитера:

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 вернет ожидаемый путь.

...