如果从python2.6导入site-packages与python2.7一起使用可能会发生的问题?

时间:2012-08-23 21:33:24

标签: python import

我终于设法安装了numpy,但它似乎只适用于python2.6。我不知道如何在2.7文件夹中安装它(已经尝试了几个小时,但我在开始的几个月里只是初学者)。无论如何,如果我使用Python 2.7并将绝对路径附加到sys.path,是否会出现问题?

有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

它可以部分工作,但这是一个坏主意。 只是不要这样做。即使它似乎有效,也可能没有。如果确实如此,那么它将来会随机失败。

这些是我脑海中潜在的问题:

  1. 扩展(用C,C ++等编写的扩展)特定于特定的Python版本;和numpy有一些扩展,AFAICS。只有当你不使用它们时才会工作(即使用纯Python模块);
  2. Python将模块编译为字节码。字节码特定于特定的Python版本。如果在python2.7中使用python2.6目录中的模块,则编译后的文件将发生冲突。我怀疑这会导致重大问题,除非每次切换Python版本时都会重新编译它们;
  3. Python代码可以是特定于版本的。对于次要版本不太可能(但是例如Python 2/3可能会有严重的差异),但仍然可能发生。换句话说,为Python2.6安装的模块实际上可能与Python2.7的模块略有不同;
  4. 如果更改加载顺序,Python2.7可能会开始从Python2.6加载一些标准模块。它可以起作用,它可能导致随机破损;
  5. 它将使Python2.6的所有模块都可见。它可能会导致某些随机开关的结果不可预测。我怀疑这个版本有什么特定的东西,但是有些模块实际上可能会决定使用某种不推荐的界面来查看它。
  6. 还有更多。你实际上可能会尝试,但要做好准备,你可能会浪费大量时间试图找出为什么某些东西不能按预期发挥作用。

    除非我遗漏了一些内容,否则我认为为Python2.7安装numpy主要是使用 Python 2.7运行设置;像:

    python2.7 setup.py clean
    python2.7 setup.py build
    python2.7 setup.py install
    

    根据您的特定安装/系统,最好使用包管理器,二进制包或pip之类的工具。如果您想了解有关如何使用Python2.7强制执行Python2.7的更多详细信息,您必须告诉我们您选择哪一个。