对于学习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下的冲突问题就完美解决了
。
分享到:
相关推荐
在Python3的生态系统中,`pip3`是默认的包管理工具,用于安装、升级和管理Python软件包。它使得开发者能够方便地从Python Package Index (PyPI) —— 官方的第三方Python库仓库,获取和安装各种依赖。 离线安装...
3. **pip3 安装**:pip是Python的包管理器,用于安装和管理Python库。在Ubuntu中,可以使用`sudo apt install python3-pip`来安装pip3。 4. **虚拟环境**:为了保持项目的独立性和避免版本冲突,我们通常创建虚拟...
而pip是Python的包管理器,用于安装和管理Python软件包。在Python 2.7.8这个版本中,pip并不是默认安装的,因此我们需要手动进行安装。下面将详细解释如何在Python 2.7.8环境下安装pip,以及它的重要性。 **步骤一...
在Python的生态系统中,`pip`是一个至关重要的工具,它是Python的包管理器,用于安装和管理软件包。对于Python 2.7这样的较旧版本,`pip`同样不可或缺,因为它允许开发者获取和安装各种库和依赖项,从而扩展Python的...
#### 二、为Python 2和Python 3安装pip pip是Python的包管理工具,可以方便地安装和管理Python第三方库。对于不同的Python版本,需要单独安装pip。 1. **下载pip安装脚本** 访问...
pip还具有虚拟环境(virtualenv)集成的能力,这允许开发者在独立的环境中安装和管理不同的Python版本和包,避免不同项目之间的冲突。通过创建虚拟环境,每个项目都可以有自己的Python解释器和包集合,保持系统干净...
这个过程涉及到多个步骤,包括Python环境的更新、依赖的处理和pip的安装。 在CentOS上,Python2.6是默认版本,但为了获得更好的兼容性和更多的库支持,通常会升级到Python2.7。以下是一份详细的升级和安装pip的步骤...
5. **创建虚拟环境**:pip常与virtualenv结合使用,创建独立的Python环境,避免不同项目间的库冲突。 6. **卸载库**:使用`pip uninstall package`命令可以轻松移除不再需要的库。 7. **列表已安装的库**:`pip ...
- **虚拟环境**:配合`virtualenv`或`venv`,pip可以创建隔离的Python环境,避免不同项目之间的依赖冲突。在虚拟环境中安装包只会影响当前环境,不会影响全局Python安装。 **3. pip-19.1.1版本特性** pip的19.1.1...
在Windows环境下,直接解压这个压缩包到指定位置,然后添加Python的bin目录到系统路径,就可以在命令行中使用Python和pip了。 对于初学者,这个免安装版本是一个很好的起点,因为它避免了安装过程中的潜在问题,如...
Python的包管理和依赖关系工具是Python生态系统中的重要组成...总结来说,pip是Python开发者的得力助手,它简化了包的安装和管理,使得Python项目的构建和维护更加高效。了解和熟练使用pip,将对提升开发效率大有裨益。
可能有人注意到,我使用的是python2 -m pip …(这种写法是为了解决python 2和3共存时pip的冲突问题,具体解释在本页最后。) 本以为结束了,却掉进了第二个坑: 看到这个,很明显是安装MarkupSafe时出错了,但后面的 ...
总之,"Python-一个易于使用的Python PIP包更新程序"为开发者提供了一个高效的解决方案,帮助他们保持Python环境的整洁和更新。它简化了包的管理流程,提高了开发者的生产力,同时也降低了因依赖问题引发的故障风险...
- **依赖冲突**:多个版本的相同包可能会导致依赖冲突,pip提供了`--no-deps`选项避免安装依赖,或者使用虚拟环境(如venv或virtualenv)隔离不同项目所需的Python环境。 - **网络问题**:pip的包下载可能受网络...
`pip`支持安装PyPI(Python Package Index)上的任何包,并且可以精确控制版本,解决依赖关系。用户只需执行`pip install package_name`,即可完成安装。此外,`pip`还提供了强大的功能,比如升级、卸载和列出已安装...
在命令行中输入以下命令(对于Python 2.x和3.x): ```bash python get-pip.py ``` 或 ```bash python3 get-pip.py ``` 这将下载并安装最新版本的pip。请注意,根据操作系统和Python环境的不同,可能需要管理员...
当你安装了`pip`后,`Scripts`目录下会出现`pip`和`pip3`(如果对应的是Python 3)的可执行文件。将这个目录添加到系统环境变量中,意味着你可以在任何地方通过命令行直接运行`pip`命令,而无需指定完整的路径。 ...
下面将详细介绍如何在Python 3.x或2.x环境下重装`pip`。 首先,我们需要理解`pip`的作用。`pip`是Python的默认包管理器,它允许用户方便地下载、安装、升级和卸载Python库。这些库包含了各种功能,从科学计算到Web...
Python 3.5.2 是 Python 3.x 系列的一个稳定版本,它带来了许多新特性和性能优化,而 pip 9.0.1 则是用于安装和管理 Python 包的利器。 Python 3.5.2 的主要更新和特性包括: 1. **类型注解**:引入了 PEP 484 中的...
标题 "python-pip&python-webkit.tar.gz" 涉及到的是在Kali Linux 2020环境中安装w3af框架时遇到的问题,主要关于`python-pip`和`python-webkit`这两个关键软件包的缺失。下面将详细阐述这两个软件包的作用以及如何...