4

我的桌面上安装了 Python 3.1,但现在我需要 Python 2.7 才能运行 CQL。我在我的盒子上安装了两个版本的 Python,输入“Python”,调用了 3.1 版本。但是当我尝试通过指定2.7的可执行文件的路径来使用2.7版本时,再次调用了3.1,出现了一些错误,如下所示:

C:\Python27>.\python.exe
Traceback (most recent call last):
  File "C:\Python31\lib\site.py", line 56, in <module>
    import os
  File "C:\Python31\lib\os.py", line 380, in <module>
    from _abcoll import MutableMapping  # Can't use collections (bootstrap)
  File "C:\Python31\lib\_abcoll.py", line 54
    class Hashable(metaclass=ABCMeta):
                        ^
SyntaxError: invalid syntax

我应该/可以做些什么来让这两个 Python 版本都为我工作?

4

1 回答 1

3

要么使用cygwin来拥有一个不错的 bash 环境,从而可以轻松地使用特定的解释器启动 python 脚本,或者使用virtualenv来创建基于特定解释器的环境:

> mkdir project
> cd project
> C:\Python27\Scripts\virtualenv.exe -p C:\Python32\python.exe .
> Scripts\activate

至此,你的 env 已经设置为这个项目,输入python会启动 python3.2
你会输入deactivate恢复到正常的 env。使用这种方法,您可以在每个项目的基础上进行设置,以管理 python 项目之间的版本依赖关系,或者您可以为每个 python 版本使其更具全局性。由你决定。

在基于 *nix 的系统中,我们可以在脚本顶部使用“shebang”行来告诉它使用哪个解释器。Windows 仅通过 GUI 具有文件扩展名关联,并且您必须在命令行中以以下形式明确python <script.py>

于 2012-05-22T18:01:58.213 回答