npm使用2个Python版本

时间:2014-07-14 17:39:43

标签: python node.js python-3.x npm python-2.x

每当我安装某些node个软件包时,都会出现涉及Python版本的错误。这是因为我有Python 2.7Python 3.3(这些是我上次更新时的最新版本,但现在有3.4),但显然我只能在我的{PATH中找到一个版本{1}}(重写任何后续文件夹)。我Python 3.3中有PATH,因为它比较新,但是仍然有很多程序,包括使用npm的{​​{1}}模块,超过5年后

有没有办法包含"后备" Python 2版本,对于无法使用版本3的模块?一般的解决方案是惊人的,但我至少想要一个安装Python模块的解决方案。请注意,某些模块可能与npm完全匹配,但我不确定是否有任何模块无法使用Python 3。话虽如此,一个解决方案允许使用兼容时使用最新版本而不使用最新版本的解决方案,这将是最好的。

作为参考,我的Python 2安装在Python 2.7文件夹中,C:\Python27\python位于Python 3.3文件夹中。我得到的C:\Python33\python错误是:

  

contextify@0.1.8安装c:\ repos \ konneka \ node_modules \ buster \ node_modules \ bus   三元语法\ node_modules \ jsdom \ node_modules \ contextify   node-gyp rebuild

npm

2 个答案:

答案 0 :(得分:2)

使用virtualenvnodeenv并拥有您想要的任何版本组合。

答案 1 :(得分:-1)

我在他们之间翻转的方式是使用python文件开头的shebang

包括:

#!python2

在文件的开头,当你双击它时,py.exe(或pyw.exe)将它传递给那个版本的python(假设它可以找到它),你甚至可以传递它:

#!python2.7
假设您安装了多个版本的python2,

明确使用2.7版。

并在安装模块时使用它,只需编辑设置文件以包含该行作为第一行,然后避免将python放在命令行中

假设您使用批处理文件来安装像我这样的模块,大多数人都会这样做:

python setup.py install
然后我使用:

setup.py install

这可确保安装脚本指示将其安装到哪个版本的python

我也经过一段时间的杂耍python 2 + 3后发现它让我更容易编辑注册表,这样当我右键单击一个python文件时,我可以用空闲的2或3打开它。

编辑: 我应该提一下,当python3是最后一次安装时,这只能正常工作,因为python 2在注册表中设置了不友好的值,并直接传递给python2版本而不是先检查文件