Python import-site error с несколькими версиями - PullRequest
0 голосов
/ 24 июня 2011

Я использую общую машину. Я пытаюсь установить Python 2.6 для проекта, использующего Pysco (не поддерживается в 2.7), и на компьютере уже установлена ​​версия 2.7, которую я не могу удалить, не нарушив чужие проекты.

Я использую 32-битные двоичные файлы Python в Windows 7.

Когда я пытаюсь запустить 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

Ответы [ 2 ]

2 голосов
/ 24 июня 2011

Попробуйте использовать virtualenv. Он используется для разделения многих экземпляров python и его библиотек - у вас может быть как можно больше виртуальных сред: python 2.5, 2.6, 2.7 и т.д. - с любыми комбинациями библиотек - так что вы можете иметь, например, пять экземпляров python 2.6 с разными наборы библиотек настроены.

Начните с http://pypi.python.org/pypi/virtualenv

1 голос
/ 13 июня 2017

Я знаю, что это старый пост, но я недавно решил ту же проблему. Это просто вопрос обновления пути к среде для включения новой версии.
Ошибка импорта сайта Python 2.6 с установленной 2.7

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...