【发布时间】:2020-01-15 09:40:19
【问题描述】:
目前我只使用 python 2.7(为所有用户安装,添加到路径,Windows 10 机器)但我想切换到 3.8,以便能够同时使用它们我首先在我的系统中安装了 virtualenv python 2.7 .
然后为所有用户安装 python 3.8.1 而不将其添加到路径。
这样创建了我的 virtualenv:virtualenv c:\virtualEnvs\p38x64_jupytertest -p C:\Python38-32\python.exe
- 然后激活它:
C:\virtualEnvs\p38x64_jupytertest\Scripts\activate.bat - 检查是否选择了python 3.8.1:
python --version(它是) - 然后在我的 virtualenv 中安装了 jupyter:
pip install jupyter
然后当我运行jupyter notebook 时,我得到了
Traceback (most recent call last):
File "C:\Python38-32\Lib\runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Python38-32\Lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "c:\virtualEnvs\p38x64_jupytertest3\Scripts\jupyter-notebook.EXE\__main__.py", line 7, in <module>
File "c:\virtualenvs\p38x64_jupytertest3\lib\site-packages\jupyter_core\application.py", line 268, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "c:\virtualenvs\p38x64_jupytertest3\lib\site-packages\traitlets\config\application.py", line 663, in launch_instance
app.initialize(argv)
File "<c:\virtualenvs\p38x64_jupytertest3\lib\site-packages\decorator.py:decorator-gen-7>", line 2, in initialize
File "c:\virtualenvs\p38x64_jupytertest3\lib\site-packages\traitlets\config\application.py", line 87, in catch_config_error
return method(app, *args, **kwargs)
File "c:\virtualenvs\p38x64_jupytertest3\lib\site-packages\notebook\notebookapp.py", line 1720, in initialize
self.init_webapp()
File "c:\virtualenvs\p38x64_jupytertest3\lib\site-packages\notebook\notebookapp.py", line 1482, in init_webapp
self.http_server.listen(port, self.ip)
File "c:\virtualenvs\p38x64_jupytertest3\lib\site-packages\tornado\tcpserver.py", line 152, in listen
self.add_sockets(sockets)
File "c:\virtualenvs\p38x64_jupytertest3\lib\site-packages\tornado\tcpserver.py", line 165, in add_sockets
self._handlers[sock.fileno()] = add_accept_handler(
File "c:\virtualenvs\p38x64_jupytertest3\lib\site-packages\tornado\netutil.py", line 279, in add_accept_handler
io_loop.add_handler(sock, accept_handler, IOLoop.READ)
File "c:\virtualenvs\p38x64_jupytertest3\lib\site-packages\tornado\platform\asyncio.py", line 99, in add_handler
self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ)
File "C:\Python38-32\Lib\asyncio\events.py", line 501, in add_reader
raise NotImplementedError
NotImplementedError
经过一番谷歌搜索,我发现很多教程解释了如何在系统 python 中安装 jupyter,然后向其中添加 virtualenvs,而不是如何在虚拟 env 中安装它。
我这样做的原因是因为我想要隔离我的 python 3 项目,因为我有很多 python 2.7 项目(直到现在我没有使用 virtualenv,并且每个包都安装在我的系统 python 2 中。)
知道为什么我有这个异常吗?
谢谢。
PS:是的,它在堆栈跟踪中显示p38x64_jupytertest3,因为 venv 实际上不是p38x64_jupytertest,而是p38x64_jupytertest3
【问题讨论】:
-
这应该可以。我对 Windows 不够熟悉,不知道那里可能有什么不同。我的一个怀疑是您正在运行的
pip是外部的,而不是 virtualenv 内部的。 -
我跑了
pip freeze然后deactivate.bat然后pip freeze又一次,他们都表现出不同的东西(在venv之外更多),所以看起来我的点子在虚拟环境中是正确的 -
那里听起来是正确的。
标签: python jupyter-notebook virtualenv