对于学习python的人来说,python2和python3必不可少,但当同时安装了两者后,又会带来一些冲突问题,比如shell中输入python,shell就会以最先在环境变量中找到的python为准,这样很多情况下并非是我们所想。而很多人的解决办法是修改其中一个python.exe的名字,比如修改为python2.exe之类。这样做的确解决了输入python所带来的冲突问题,但这同时也带来了隐患,即直接导致python 2的pip不再可用,输入pip2将会产生错误:Fatal error in launcher: Unable to create process using '"'。
那如何解决这一连串的冲突问题呢?
办法一(来自社区):
事实上这个问题几年以前Python社区就给出了官方解决方案,只不过国内一直没有注意到罢了。
我们在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面。这个启动器允许我们指定使用Python2还是Python3来运行代码(当然前提是你已经成功安装了Python2和Python3)。
如果你有一个Python文件叫 hello.py,那么你可以这样用Python2运行它:
py -2 hello.py
类似的,如果你想用Python3运行它,就这样:
py -3 hello.py
不过每次运行都要加入参数-2/-3还是比较麻烦,所以py.exe这个启动器允许你在代码中加入说明,表明这个文件应该是由python2解释运行,还是由python3解释运行。说明的方法是在代码文件的最开始加入一行:
#! python2
或者:
#! python3
分别表示该代码文件使用Python2或者Python3解释运行。这样,运行的时候你的命令就可以简化为:
py hello.py
pip冲突解决办法:
当Python2和Python3同时存在于windows上时,它们对应的pip都叫pip.exe,所以不能够直接使用 pip install 命令来安装软件包。而是要使用启动器py.exe来指定pip的版本。命令如下:
py -2 -m pip install XXXX
-2 还是表示使用 Python2,-m pip 表示运行 pip 模块,也就是运行pip命令了。如果是为Python3安装软件,那么命令类似的变成:
py -3 -m pip install XXXX
办法二(改进版):
办法一虽说可行,但是要在shell中输入时还是稍显麻烦,如果我还是想直接输入python2就能启动对应的解释器呢?对于这个问题,我最开始是创建了对应的快捷方式,然后修改其名字为python2.exe,再将其所在目录添加到环境变量,然而当在shell中输入时,居然提示找不到python2命令!所以我只能猜测shell中不能直接执行快捷方式了。郁闷了一会儿,我又想到了批处理脚本,直接将python.exe所在的绝对路径写入其中就行了,比如:C:\python27\python。然后再修改文本名为python2.bat,再把其所在路径添加到环境变量,最后测试,终于一切OK了
,同理,pip也可采取类似的办法解决(不过一般安装时已经有了一个pip2了,直接将其添加到环境变量中即可了)。这样一来,命令python和pip在shell下的冲突问题就完美解决了
。
分享到:
相关推荐
可能有人注意到,我使用的是python2 -m pip …(这种写法是为了解决python 2和3共存时pip的冲突问题,具体解释在本页最后。) 本以为结束了,却掉进了第二个坑: 看到这个,很明显是安装MarkupSafe时出错了,但后面的 ...
到处运行,python环境掌握在自己手里,随用随走,环境稳定,解决电脑中无 python 环境或者电脑中 python 环境异常、杂乱、多版本冲突等问题。 全新的 Windows 系统上可以非常方便的运行 python 脚本,特别适合网吧...
比如对于ipython,机子本身安装的版本是1.2.1,显然太低,不足以跑jupyter,尝试着用pip安装,却发现下载的过程一路畅通,但是安装的时候却总是会报这样一个错误。 错误提示如下: ......'Not uninstalling ipython ...
毕业设计,基于Python+Django+MySql开发的知网爬虫及数据可视化分析...注意:celery框架里面有个方法和python3.7的关键字冲突,所以用python3.6吧! 还需要执行pip install lxml==4.5.2 解决html文档结构分析依赖的包
本文介绍了Python 中 Virtualenv 和 pip 的简单用法详解,分享给大家,具体如下: 0X00 安装环境 我们在 Python 开发和学习过程中需要用到各种库,然后在各个不同的项目和作品里可能用的版本还不一样,正因为有这种...
## 开发环境: Pycharm + Python3.6 + Django2.0 + mysql数据库,...注意:celery框架里面有个方法和python3.7的关键字冲突,所以用python3.6吧! 还需要执行pip install lxml==4.5.2 解决html文档结构分析依赖的包
开发环境: Pycharm + Python3.6 + Django2.0 + mysql数据库,redis...注意:celery框架里面有个方法和python3.7的关键字冲突,所以用python3.6吧! 还需要执行pip install lxml==4.5.2 解决html文档结构分析依赖的包
最近Google官方的开发者博客中宣布新的版本Tensorflow(0.12)将增加对Windows的支持,想试着windows10下学习tensorflow,之前已经安装anaconda2(python2.7),怕安装python3.5会冲突,但还是想试一下,最终成功。...
如果您已经安装了OpenCV先前/其他手动安装版本(=未通过pip进行安装)(例如,Python站点软件包根目录中的cv2模块),请在安装前将其删除以避免冲突。 确保您的pip版本为最新版本(最低支持版本为19.3): pip ...
场景 我写个脚本给别人用,但是这个脚本中包含了一个第三方库。 当然对方执行的时候就会提示缺少,能否让python自动安装呢?... 您可能感兴趣的文章:Python安装模块的常见问题及解决方法python中安装模块包版本冲突问
【资源说明】 该项目是个人毕设项目源码,评审分达到94分,都经过严格...注意:celery框架里面有个方法和python3.7的关键字冲突,所以用python3.6吧! 还需要执行pip install lxml==4.5.2 解决html文档结构分析依赖的包
带有pip冲突检查器的python-project-template-template 该项目是一个模板,显示了如何使用pip-conflict-checker和pipdeptree在Python中进行有效的依赖管理。 该模板是最小的,仅包含有效进行依赖关系管理所需的要素...
pip3 install openbrokerapi # including gevent as server pip3 install openbrokerapi[gevent] # recommended production setup pip3 install openbrokerapi[gunicorn] 或从github安装开发版本: pip3 install ...
安装的时候 进入cmd pip install pyinstaller 发现安装报错! 解决办法: # 自主下载pyinstaller包,进行手动安装 pyinstaller 的下载地址:http://www.pyinstaller.org/downloads.html 下载文件后,解压...
因此,如果您同时使用pip和conda安装软件包,软件包之间可能会发生冲突。因此,为了在某种程度上减轻这种风险,请选择pip或者conda中的一个工具使用。由于所有内容都是通过pip安装的,因此,如果要使用conda,请另外...
brew install sashkab/python/python@3.X 您可以通过将完整路径传递给Python可执行文件来使用它来创建虚拟环境: /usr/local/opt/python@3.X/bin/python3.X -mvenv < path> 为了更新到pip , setuptools和wheel最新...
软件包名称已从“ adb”重命名为“ ppadb” ...$pip install -U pure-python-adb 例子 连接到adb服务器并获取版本 from ppadb . client import Client as AdbClient # Default is "127.0.0.1" and 503
它解决的基本问题是依赖项和版本之一,以及间接权限。 使用 ,可以安装该库而无需系统安装权限,也不会与已安装的系统依赖性发生冲突。 支持的Python版本 Python> = 3.6,<3.10 不支持的Python版本 Python == ...
API网关的Python客户端 ,您可以为无云的Google Cloud无服务器后端创建,保护和监视API,包括Cloud Functions,Cloud Run和App Engine。 API网关基于Envoy构建,可为您提供高性能,可伸缩性,并让您可以专注于构建...