在jupyter笔记本、conda环境、python3.6上找不到mysql

ewm0tg9j  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(433)

我一直在尝试从我创建的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 :

  1. backcall 0.1.0 <pip>
  2. certifi 2018.4.16 py36_0
  3. colorama 0.3.9 <pip>
  4. decorator 4.3.0 <pip>
  5. ipython 6.3.1 <pip>
  6. ipython-genutils 0.2.0 <pip>
  7. jedi 0.12.0 <pip>
  8. mysql-connector-python 2.0.4 py36_0
  9. mysqlclient 1.3.12 <pip>
  10. parso 0.2.0 <pip>
  11. pickleshare 0.7.4 <pip>
  12. pip 9.0.3 py36_0
  13. prettytable 0.7.2 <pip>
  14. prompt-toolkit 1.0.15 <pip>
  15. Pygments 2.2.0 <pip>
  16. python 3.6.5 h0c2934d_0
  17. setuptools 39.0.1 py36_0
  18. simplegeneric 0.8.1 <pip>
  19. six 1.11.0 <pip>
  20. SQLAlchemy 1.2.7 <pip>
  21. sqlparse 0.2.4 <pip>
  22. traitlets 4.3.2 <pip>
  23. vc 14 h0510ff6_3
  24. vs2015_runtime 14.0.25123 3
  25. wcwidth 0.1.7 <pip>
  26. wheel 0.31.0 py36_0
  27. wincertstore 0.2 py36h7fe50ca_0

(有些mysql包不存在,因为在尝试失败后,我删除了它们。)
如何让笔记本找到模块以便连接到mysql?

c9x0cxw0

c9x0cxw01#

有了chris提供的关于评论的链接,我就明白了(非常感谢!)
第一步是验证jupyter是否在环境安装笔记本的同一位置查找笔记本。一个简单的方法是:
在控制台上:

  1. activate myEnv
  2. python
  3. >>> import sys
  4. >>> sys.executable
  5. 'C:\\Users\\myUser\\Anaconda3\\envs\\myEnv\\python.exe'

jupyter内部:

  1. import sys
  2. sys.executable
  3. 'C:\\Users\\myUser\\Anaconda3\\python.exe'

如您所见,本例中的jupyter是在环境之外运行的,这就是它找不到已安装包的原因。
但是——为什么会这样?在启动jupyter之前我激活了环境。有没有可能我无意中运行了一个错误版本的jupyter?

  1. where jupyter
  2. C:\Users\myUser\Anaconda3\Scripts\jupyter.exe

啊——我运行了一个错误的jupyter版本。那一定是因为我没有在环境中安装jupyter。

  1. conda install jupyter
  2. # ... installation process ...
  3. where jupyter
  4. C:\Users\myUser\Anaconda3\envs\myEnv\Scripts\jupyter.exe
  5. C:\Users\myUser\Anaconda3\Scripts\jupyter.exe

所以现在,环境jupyter可执行文件应该优先。执行jupyter后,行为与预期一致,并且 sys.executable 返回预期路径。

展开查看全部

相关问题