По какой-то причине ipython изучает виртуальность другой версии Python - PullRequest
0 голосов
/ 09 мая 2011

так что у меня был ipython, и какое-то время он работал нормально. Затем я использовал buildout для установки ipdb. Кейс: ipython и python2.7 для всей системы ny-python virtualenvs в домашней папке. Экземпляр plone в домашней папке, использующий virtualenv из python2.4 из naked-python, о котором я упоминал

Теперь я пытаюсь запустить ipython, и я получаю

fakedrake@fakedrake-arch ~ $ ipython
/home/fakedrake/python/parts/opt/lib/python2.4/pprint.py:39: RuntimeWarning: Python C API version mismatch for module cStringIO: This Python has API version 1013, module cStringIO has versi
on 1012.                                                                                                                                                                                    
  from cStringIO import StringIO as _StringIO
/home/fakedrake/python/parts/opt/lib/python2.4/string.py:528: RuntimeWarning: Python C API version mismatch for module strop: This Python has API version 1013, module strop has version 1012
.                                                                                                                                                                                           
  from strop import maketrans, lowercase, uppercase, whitespace
/home/fakedrake/python/parts/opt/lib/python2.4/unittest.py:51: RuntimeWarning: Python C API version mismatch for module time: This Python has API version 1013, module time has version 1012.
  import time
/home/fakedrake/python/parts/opt/lib/python2.4/heapq.py:132: RuntimeWarning: Python C API version mismatch for module itertools: This Python has API version 1013, module itertools has versi
on 1012.                                                                                                                                                                                    
  from itertools import islice, repeat
/home/fakedrake/python/parts/opt/lib/python2.4/bisect.py:82: RuntimeWarning: Python C API version mismatch for module _bisect: This Python has API version 1013, module _bisect has version 1
012.                                                                                                                                                                                        
  from _bisect import bisect_right, bisect_left, insort_left, insort_right, insort, bisect
/home/fakedrake/python/parts/opt/lib/python2.4/heapq.py:306: RuntimeWarning: Python C API version mismatch for module _heapq: This Python has API version 1013, module _heapq has version 101
2.                                                                                                                                                                                          
  from _heapq import heappush, heappop, heapify, heapreplace, nlargest, nsmallest
Traceback (most recent call last):
  File "/usr/bin/ipython", line 26, in <module>
    import IPython.Shell
  File "/usr/lib/python2.7/site-packages/IPython/__init__.py", line 58, in <module>
    __import__(name,glob,loc,[])
  File "/usr/lib/python2.7/site-packages/IPython/ipstruct.py", line 17, in <module>
    from IPython.genutils import list2dict2
  File "/usr/lib/python2.7/site-packages/IPython/genutils.py", line 20, in <module>
    import doctest
  File "/home/fakedrake/python/parts/opt/lib/python2.4/doctest.py", line 99, in <module>
    import unittest, difflib, pdb, tempfile
  File "/home/fakedrake/python/parts/opt/lib/python2.4/tempfile.py", line 33, in <module>
    from random import Random as _Random
  File "/home/fakedrake/python/parts/opt/lib/python2.4/random.py", line 41, in <module>
    from warnings import warn as _warn
  File "/home/fakedrake/python/parts/opt/lib/python2.4/warnings.py", line 258, in <module>
    simplefilter("ignore", category=OverflowWarning, append=1)
NameError: name 'OverflowWarning' is not defined

Если вам нужна дополнительная информация о проблеме, просто скажите мне, я не знаю, что еще может иметь отношение ... (я запускаю arch-linux)

1 Ответ

0 голосов
/ 05 июля 2011

Почему у вас есть библиотеки python2.4 и python 2.7 ?? Когда ipython (v2.7) импортирует doctest, он перемещается в библиотеку python2.4. Я бы проверил вашу переменную окружения PYTHONPATH, а также sys.path, т.е.

import sys, os
print '\n'.join( [p for p in sys.path ] )
print '\n'.join( [[ for

Порядок это важно. Выясните, почему doctest импортируется из этого каталога python2.4, а затем удалите этот каталог из sys.path. Согласно здесь , OverflowWarning удаляется при обновлении до python2.5

...