【问题标题】:Python import-site error with multiple versions具有多个版本的 Python 导入站点错误
【发布时间】:2011-09-22 05:14:47
【问题描述】:

我正在使用共享机器。我正在尝试为使用 Pysco 的项目安装 Python 2.6(在 2.7 上不受支持),并且机器上现有的 2.7 安装我无法在不破坏其他人的项目的情况下删除。

我在 Windows 7 上使用 Python 的 32 位二进制文​​件。

当我尝试启动 Python 2.6 时,出现此错误:

'import-site' failed; use -v for traceback

看起来 Python 2.6 正在尝试从 Python 2.7 导入模块,这导致了失败(请参阅下面的输出)。有谁知道这可能是什么原因,以及如何解决?谢谢!

使用 -v 选项运行会得到以下输出

# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# C:\Python27\Lib\site.pyc matches C:\Python27\Lib\site.py
import site # precompiled from C:\Python27\Lib\site.pyc
# C:\Python27\Lib\os.pyc matches C:\Python27\Lib\os.py
import os # precompiled from C:\Python27\Lib\os.pyc
import errno # builtin
import nt # builtin
# C:\Python27\Lib\ntpath.pyc matches C:\Python27\Lib\ntpath.py
import ntpath # precompiled from C:\Python27\Lib\ntpath.pyc
# C:\Python27\Lib\stat.pyc matches C:\Python27\Lib\stat.py
import stat # precompiled from C:\Python27\Lib\stat.pyc
# C:\Python27\Lib\genericpath.pyc matches C:\Python27\Lib\genericpath.py
import genericpath # precompiled from C:\Python27\Lib\genericpath.pyc
# C:\Python27\Lib\warnings.pyc matches C:\Python27\Lib\warnings.py
import warnings # precompiled from C:\Python27\Lib\warnings.pyc
# C:\Python27\Lib\linecache.pyc matches C:\Python27\Lib\linecache.py
import linecache # precompiled from C:\Python27\Lib\linecache.pyc
# C:\Python27\Lib\types.pyc matches C:\Python27\Lib\types.py
import types # precompiled from C:\Python27\Lib\types.pyc
# C:\Python27\Lib\UserDict.pyc matches C:\Python27\Lib\UserDict.py
import UserDict # precompiled from C:\Python27\Lib\UserDict.pyc
# C:\Python27\Lib\_abcoll.pyc matches C:\Python27\Lib\_abcoll.py
import _abcoll # precompiled from C:\Python27\Lib\_abcoll.pyc
# C:\Python27\Lib\abc.pyc matches C:\Python27\Lib\abc.py
import abc # precompiled from C:\Python27\Lib\abc.pyc
# C:\Python27\Lib\_weakrefset.pyc matches C:\Python27\Lib\_weakrefset.py
import _weakrefset # precompiled from C:\Python27\Lib\_weakrefset.pyc
import _weakref # builtin
'import site' failed; traceback:
Traceback (most recent call last):
  File "C:\Python27\Lib\site.py", line 62, in <module>
    import os
  File "C:\Python27\Lib\os.py", line 398, in <module>
    import UserDict
  File "C:\Python27\Lib\UserDict.py", line 84, in <module>
    _abcoll.MutableMapping.register(IterableUserDict)
  File "C:\Python27\Lib\abc.py", line 109, in register
    if issubclass(subclass, cls):
  File "C:\Python27\Lib\abc.py", line 151, in __subclasscheck__
    if subclass in cls._abc_cache:
  File "C:\Python27\Lib\_weakrefset.py", line 69, in __contains__
    return ref(item) in self.data
TypeError: cannot create weak reference to 'classobj' object

【问题讨论】:

    标签: python windows windows-7 installation python-2.6


    【解决方案1】:

    尝试使用 virtualenv。它用于分隔许多 python 实例及其库 - 您可以拥有尽可能多的虚拟环境:python 2.5 、 2.6 、 2.7 等等 - 使用任何库组合 - 例如,您可以拥有五个不同的 python 2.6 实例配置的库集。

    http://pypi.python.org/pypi/virtualenv开始

    【讨论】:

    • 尝试在 Python 2.6 上安装 virtualenv 会出现以下错误:ImportError: No module named pkg_resources。这可能是因为解释器没有正确启动
    • 我是否也必须在 Python 2.7 中使用 virtualenv?我真的不想接触太多,因为我不想破坏别人的项目。
    • 不需要使用virtualenv。它是可选的——virtualenv 在现有的 python 安装之上添加虚拟 env——它使符号链接(或 Windows 中的快捷方式)指向正确的二进制文件和库......并且通过运行激活脚本,您可以将它们设为默认值。对于 pkg_resources - 您是否已经安装了 setuptools?
    • 是的,当我执行 easy_install virtualenv 时发生错误。我猜我有点赶上 22,我需要安装 virtual env 才能运行 python 2.6,但我需要运行 python 2.6 才能安装 virtualenv。有什么建议?谢谢!
    • 尝试使用 python2.7 运行 virtualenv。当你运行 virtualenv 时,你可以指定你使用哪个版本的 python 作为基础。
    【解决方案2】:

    我知道这是一篇旧帖子,但我最近解决了同样的问题。只需更新环境路径以包含新版本即可。
    Python 2.6 'import site' failed error with 2.7 installed

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 2021-03-07
      • 2017-10-18
      • 2017-03-03
      • 1970-01-01
      相关资源
      最近更新 更多