如果我在Python 3环境中安装了带有pip的软件包,那么该软件包是否保证与Python 3兼容?

时间:2019-05-30 12:00:42

标签: python-3.x pip

我有一个Python 3环境,一切都按预期正常运行,即:

$ python --version
Python 3.6.8

$ pip --version
pip 18.1 from /Users/user/.pyenv/versions/3.6.8/envs/myenv/lib/python3.6/site-packages/pip (python 3.6)

我正在将Python 2项目移植到Python3。如果我将这些依赖项安装在Python 3环境中,例如,我从Python 2项目中获取了requirements.txt文件。

$ pip install -r my_python2_requirements.txt

并且成功完成了吗,我保证我的所有依赖项都与Python 3兼容吗?

或者换一种说法:是否可以使用Python 3 / pip安装仅Python 2的软件包(即无法使用的软件包)。

1 个答案:

答案 0 :(得分:0)

我对此并不完全确定,因此我进行了以下测试。

我从PyPi中选择了一个随机模块,该模块被标记为“仅Python 2”,并尝试将其安装在两个版本上。为了测试,我使用了patchit

pip命令命中了相同的URL,pip3调用甚至检测到并使用了缓存的tar.gz文件。因此,看来pip没有提供您想要的保护。 (当然,对于同时支持2和3的软件包,应该安装相应的版本)


来自official transition guide

  

使用caniusepython3找出哪些依赖项阻止了您对Python 3(pip install caniusepython3)的使用

这应该有助于确定事物并根据需要修改requirements.txt