繁体   English   中英

我可以使用pip在Python 3中安装Python 2软件包吗?

[英]Can I install Python 2 packages in Python 3 using pip?

在安装Python 3.6时,我尝试

pip install nipet

但我明白了:

Complete output from command python setup.py egg_info:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\me\AppData\Local\Temp\pip-install-eef9zqvc\nipet\setup.py", line 64
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('e> the current operating system is not supported.')?

这很可能与针对Python 2.x的nipet有关。

我已经在此程序包的某些部分成功地尝试了2to3 ,并注意到所有不兼容性都归结为print语句。 但是,由于setup.py失败,我什至无法将所有文件安装在正确的位置上以运行2to3

是否有某种用于2to3pip包装器,可以让我无需花费大量精力即可安装Python 2.x软件包?

TL; DR:不,你不能。


nipet与Python 3不兼容。 正如@deceze在评论中所说,您需要先修复此问题,然后再尝试安装它。 点子无法胜任。

检出代码并将其设置为Python 3(这可能涉及2to3,并且可能需要手动更改)。 然后重试安装。 如果您对所获得的结果感到满意,则可以将Python 3端口提交给维护者。

另外,应固定nipet使其仅指定为Python 2,以便仅在PyPI上将其列为Python 2,并且pip3甚至不会尝试安装if。 您应该在Bugtracker中打开一个问题,要求维护人员解决该问题。 如果您愿意的话,甚至发送添加请求到setup.py的pull-request。

@Jérôme写的是正确的,但并非所有组件都正确。 为了完整起见,我想提一提的use_2to3的选项setuptools ,其中大部分做我想做什么。 (看来,他们没有碰到setup.py)。

这里是一些更多信息:

通过将关键字参数use_2to3设置为True,Setuptools提供了一种在构建过程中调用代码上2to3的功能,但是Setuptools项目强烈建议使用六个,将来的或另一个兼容性库开发统一的代码库。

https://setuptools.readthedocs.io/en/latest/python3.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM