我有一个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的软件包(即无法使用的软件包)。
答案 0 :(得分:0)
我对此并不完全确定,因此我进行了以下测试。
我从PyPi中选择了一个随机模块,该模块被标记为“仅Python 2”,并尝试将其安装在两个版本上。为了测试,我使用了patchit。
pip
命令命中了相同的URL,pip3调用甚至检测到并使用了缓存的tar.gz
文件。因此,看来pip
没有提供您想要的保护。 (当然,对于同时支持2和3的软件包,应该安装相应的版本)
使用
caniusepython3
找出哪些依赖项阻止了您对Python 3(pip install caniusepython3
)的使用
这应该有助于确定事物并根据需要修改requirements.txt
。