pip命令-Fatal error in launcher: Unable to create process using ...迁移虚拟环境后出错如何解决?
为什么参考这篇文章呢?因为我之前有过暴力迁移虚拟环境的操作,该错误就是源于此背景,只有你们了解这个背景故事,才能完全理解我的解决过程。
下面是我在Cmd窗口中执行的代码,然后就出了致命启动错误。
D:\BaiduNetdiskDownload\python\python>jupyter notebook
Fatal error in launcher: Unable to create process using '"d:\baidunetdiskdownload\pycharm\venv\scripts\python.exe" "D:\Program Files\python\venv38\py-cv-learning\Scripts\jupyter.exe" notebook': ???????????
在网上搜索时,有一篇文章建议我用HEX读取工具打开jupyter notebook的文件后,再把那些绝对路径替换成新路径。
因为本人觉得太麻烦,还不如重装来得快。
于是我就利用pip list命令查出所有安装的包。如下面6串代码,我只注意到这6个包,
jupyter 1.0.0
jupyter-client 7.1.1
jupyter-console 6.4.0
jupyter-core 4.9.1
jupyterlab-pygments 0.1.2
jupyterlab-widgets 1.0.2
于是我用pip uninstall xxx的命令逐一把这6个包卸载了(注意不能仅仅是执行pip uninstall jupyter,这样只是卸载jupyter本身,并不会连带它的依赖包一起卸载)。
卸完后,再用pip install jupyter重装(install jupyter时会自动把它正常运行所依赖的包全部安装上,所以只用执行一次命令)。
重装完成,再执行jupyter notebook,还是出现上面那个错误。
于是我估计卸载得还不够充分,肯定还有些包里记录了原来的路径,当我执行jupyter notebook时它调用的是原路径,这才产生了错误。
接着,我在虚拟环境的script文件夹下浏览文件时,发现有一个jupyter-notebook.exe文件的创建日期不是我刚刚重装的日期,这也再一次验证了当初卸载操作不充分的设想。
再次利用pip list查找所有包,找到一个名称为【notebook】的包,注意它竟然不叫【jupyter notebook】,难怪当初没找到它。
这一次找到毒瘤了!我直接卸载这个【notebook】后再重装【jupyter】,接着执行【jupyter notebook】,终于成功启动了!