python3.7使用的人多吗_使用python3的多个版本(3.6和3.7)的jupyter选择了错误的站点包...

我已经在办公桌上敲了三天头了,我不知道该怎么办,所以如果你知道发生了什么,请告诉我。在

问题:当我运行一个全局安装(在虚拟环境之外)的jupyter笔记本,其中虚拟环境的python3-V是3.6.4,全局python3-V是3.7.0,当我运行一个全局安装的jupyter笔记本(在虚拟环境之外)时,jupyter笔记本(从活动venv运行)崩溃我激活venv内核是因为它试图从全局python3.7.0获取站点包[I 11:11:13.221 NotebookApp] Serving notebooks from local directory: /Users/cap/Desktop/Projects/lastresort

[I 11:11:13.221 NotebookApp] 0 active kernels

[I 11:11:13.221 NotebookApp] The Jupyter Notebook is running at:

[I 11:11:13.221 NotebookApp] http://localhost:8888/?token=cc92b513df1e586ce592bfc4fe641b9f2d76fdde480c6f07

[I 11:11:13.221 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

[C 11:11:13.222 NotebookApp]

Copy/paste this URL into your browser when you connect for the first time,

to login with a token:

http://localhost:8888/?token=cc92b513df1e586ce592bfc4fe641b9f2d76fdde480c6f07&token=cc92b513df1e586ce592bfc4fe641b9f2d76fdde480c6f07

[I 11:11:13.438 NotebookApp] Accepting one-time-token-authenticated connection from ::1

[I 11:11:16.385 NotebookApp] Kernel started: 2ad09f31-36f6-48cf-b859-7f78fdb6adb8

[I 11:11:17.014 NotebookApp] Adapting to protocol v5.1 for kernel 2ad09f31-36f6-48cf-b859-7f78fdb6adb8

[I 11:11:19.398 NotebookApp] Starting buffering for 2ad09f31-36f6-48cf-b859-7f78fdb6adb8:cda1e6c165f3482482d80df7d2664e9b

[I 11:11:19.609 NotebookApp] Kernel shutdown: 2ad09f31-36f6-48cf-b859-7f78fdb6adb8

[I 11:11:19.630 NotebookApp] Kernel started: 9b90f202-97bf-43b1-ba50-64d6a1323405

Traceback (most recent call last):

File "/Users/cap/.pyenv/versions/3.6.4/lib/python3.6/runpy.py", line 193, in _run_module_as_main

"__main__", mod_spec)

File "/Users/cap/.pyenv/versions/3.6.4/lib/python3.6/runpy.py", line 85, in _run_code

exec(code, run_globals)

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/lib/python3.7/site-packages/ipykernel_launcher.py", line 15, in

from ipykernel import kernelapp as app

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/lib/python3.7/site-packages/ipykernel/__init__.py", line 2, in

from .connect import *

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/lib/python3.7/site-packages/ipykernel/connect.py", line 18, in

import jupyter_client

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/lib/python3.7/site-packages/jupyter_client/__init__.py", line 4, in

from .connect import *

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/lib/python3.7/site-packages/jupyter_client/connect.py", line 23, in

import zmq

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/vendor/lib/python3.7/site-packages/zmq/__init__.py", line 47, in

from zmq import backend

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/vendor/lib/python3.7/site-packages/zmq/backend/__init__.py", line 40, in

reraise(*exc_info)

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/vendor/lib/python3.7/site-packages/zmq/utils/sixcerpt.py", line 34, in reraise

raise value

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/vendor/lib/python3.7/site-packages/zmq/backend/__init__.py", line 27, in

_ns = select_backend(first)

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/vendor/lib/python3.7/site-packages/zmq/backend/select.py", line 26, in select_backend

mod = __import__(name, fromlist=public_api)

File "/usr/local/Cellar/jupyter/1.0.0_5/libexec/vendor/lib/python3.7/site-packages/zmq/backend/cython/__init__.py", line 6, in

from . import (constants, error, message, context,

ImportError: cannot import name 'constants'

从上面几行可以看出,它调用了错误的站点包:

^{pr2}$

这是我的设置:pyenv用于管理python的多个版本

pipenv for virtualenvs(仍然不太喜欢这个)

如何设置:安装globalpython(我不喜欢在默认pyenv上瞎折腾,我保持最新版本)

> brew install python3 # This install 3.7.0

安装pyenv

> brew install pyenv

安装Python3.6.4(tensorflow需要这个)

> pyenv install 3.6.4

安装pipenv(我没有在这里使用pip安装程序)

> brew install pipenv

创建一个项目(我有一个训练家庭设置,以便我的.venvs得到

在my~/.venvs中创建)> cd Projects

> mkdire test_project

> cd test_project

> pipenv --python 3.6.4 #create the virtual env

启动虚拟环境> pipenv shell

> python3 -V

> Python 3.6.4 # I have validated in another shell that global is still 3.7

> pyenv which python3

> /Users/cap/.pyenv/versions/3.6.4/bin/python3

安装ipykernel并设置> pipenv install ipykernel

> ipython kernel install --user --name=lastresort-yyl8tfk8 --display-name "Python (lastresort-yyl8tfk8)"

检查jupyter是否看到新内核(注意:我仍在venv中)> jupyter kernelspec list

> lastresort-yyl8tfk8 /Users/cap/Library/Jupyter/kernels/lastresort-yyl8tfk8

运行jupyter笔记本并选择内核

jotebook运行良好,但当我进入并选择Python(lastresort-yyl8tfk8)时,内核重新启动以加载lastresort-yyl8tfk8内核,我从上面得到了一个错误,它与3.7中的站点包混淆了。

我试过很多方法。我甚至还求助于ipython配置文件的更改,比如这里:iptyhon profile virtual env

我真的需要一些帮助,至少在解决这个问题的方向上。。。在

我的终极目标是:

能够有多个版本的python和相应的ipykernel,我可以从它们的虚拟环境中运行,在jupyter注册后,jupyter安装是全局的。这样我就可以把我的代码和笔记本放在他们的项目文件夹里,用venvs for packages。其实很简单,我只是不知道我在搞什么。在

提前谢谢大家!

更新:

我只是验证了如果我删除了global jupyter笔记本并将其安装到venv中,它就能正常工作。我没想到它不会,但还是。在

更新:

这似乎是一些Python的恶作剧,但我不知道怎么解决它。在

更新:

尝试按照注释中的建议使用python-m运行,但结果相同。由于某些原因,当我使用激活的虚拟环境(在ipython中正确设置python3.6)调用jupyter笔记本(安装在虚拟环境之外)时,它没有调用正确的3.6站点包。在

我见过很多人在用那个装置。我真的不知道该怎么办。在

你可能感兴趣的:(python3.7使用的人多吗)