2013-06-23 2 views
4

Я пытаюсь установить python. Или, фактически, установили и деинсталлировали его несколько раз сейчас. Я использую pythonxy с spyder IDE (я привык к Matlab, поэтому я хочу использовать spyder). 3.3.2 python даже не запускался бы с spyder на моей машине win8, поэтому теперь у меня установлена ​​версия 2.7.«import sitecustomize» не удался при запуске spyder

Spyder запускается сейчас, но при запуске я получаю `` import sitecustomize 'не удалось? в моей консоли и python не будут выполнять какие-либо команды, которые я ввожу. После ошибки startupscript продолжает работать навсегда, ничего не делая, и я больше ничего не могу сделать. Ошибка говорит мне запустить python с приложением -v, ниже.

Я гугл этой ошибки, которая дала мне два возможных решения: я должен редактировать python.rb https://github.com/mxcl/homebrew/commit/10ba101c323f98118b427f291e15abc5b3732991 или я должен применить это (вложение в последнем посте) для sitecustomize https://code.google.com/p/spyderlib/issues/detail?id=771

Применения файла различий не помогло и, как объясняет мата ниже, файл .rb используется во время установки, поэтому не применим к моей проблеме.

Итак, мой вопрос: Кто-нибудь знает, как исправить эту ошибку из опыта?

Ошибка:

'import sitecustomize' failed; use -v for traceback 
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 

отслеживающий:

C:\Python27\lib\site-packages\spyderlib\pil_patch.pyc matches C:\Python27\lib\site-packages\spyderlib\pil_patch.py 

import spyderlib.pil_patch # precompiled from C:\Python27\lib\site-packages\spyderlib\pil_patch.pyc 

Traceback (most recent call last): 

    File "C:\Python27\lib\site.py", line 498, in execsitecustomize 
    import sitecustomize 

    File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 174, in <module> 

    os.environ["SPYDER_AR_STATE"].lower() == "true") 
    File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\monitor.py", line 146, in __init__ 

    self.n_request.connect((host, notification_port)) 
    File "C:\Python27\lib\socket.py", line 224, in meth 

    return getattr(self._sock,name)(*args) 

socket.error: [Errno 10061] No connection could be made because the target machine actively refused it 

Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
+0

'python.rb' - это рубиновый скрипт, который сообщает homebrew, что делать при установке python, так что это не относится к вам. Какую полную стеклу вы получаете, и что у вас в sitecustomize.py? вывод 'python -v' также мог бы помочь ... – mata

+0

, когда я запускаю python -v в command.com, он не показывает ошибку, когда я пытаюсь запустить spyder -v (например, добавить -v в файл ссылки) он вообще не начинается – Leo

+0

Теперь я добавил аргумент -v в pythonshell и получил «трассировку» – Leo

ответ

3

(Spyder DEV здесь) Я почти уверен, что ваша проблема из-за проблем брандмауэра. Кажется, ваш брандмауэр слишком строг, и он блокирует все попытки попытаться открыть порт для наших целей.

Чтобы избежать блокирования полного приложения во время оценки материала, мы запускаем наш интерпретатор python в другом процессе, чем работает один Spyder. Мы общаемся с этим процессом, используя простой протокол сокетов, который открывает новый порт на вашем компьютере и отправляет данные между консолью и Spyder через этот порт.

Это также причина, по которой вы не видите ошибку на регулярном интерпретаторе python: потому что ему не нужно открывать порт для запуска.

+0

Спасибо за помощь! Любая идея, как сделать мой брандмауэр менее строгим? Разрешение spyder.exe и python.exe через не разрешает ошибку. – Leo

+0

Я думаю, что вы можете просто разрешать соединения с '127.0.0.1' или' localhost', что означает, что вы разрешаете программам создавать соединения внутри вашего компьютера (а не в Интернете). –

+0

127.0.0.1/localhost соединений уже есть – Leo

2

После того, как вы столкнулись с настройками брандмауэра, я не смог найти ничего, что заставило бы spyder работать.
Некоторые прогоны будут работать, другие - нет, с той же конфигурацией.
Я бы сейчас исключил брандмауэр.

Я заметил, что порт, к которому подключается sitecustomize, не прослушивает.
Установка SPYDER_DEBUG=True перед запуском Spyder дает более подробную информацию:

Traceback (most recent call last): 
    File "P:\Python33\lib\threading.py", line 637, in _bootstrap_inner 
    self.run() 
    File "P:\Python33\lib\site-packages\spyderlib\widgets\externalshell\introspection.py", line 64, in run 
    sock.bind(("127.0.0.1", self.port)) 
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions` 

Я грязный хак, заменив строку:

sock.bind(("127.0.0.1", self.port)) 

следующим:

for loopCount in range(10, -1, -1): 
    try: 
    sock.bind(("127.0.0.1", self.port)) 
    break 
    except OSError: 
    if DEBUG: 
     logging.debug('Notification server: Bind on port %d failed...' % (self.port)) 
    if not loopCount: 
     raise 
    import time 
    time.sleep(1) 

Это похоже на работу , но это может быть больше удачи, чем что-либо еще ...

Версии:

  • Spyder 2.3.0dev1
  • питон 3.3.2 (64 бит)
+0

Я вижу, что вы используете Python 3.3, поэтому ошибка, вероятно, связана с тонкой разницей в том, как обрабатываются порты в отношении Python 2. Если ваше решение по-прежнему работает через некоторое время, пожалуйста, откройте проблему в нашем трекер-проблеме, Не забудьте посмотреть на это. –

+0

Не сработало для меня печально. Теперь, после запуска, spyder снова закрывается – Leo

2

После ответа Карлоса Кордобы, я сделал следующее (с использованием Ubuntu 15.10):

1-) Отключено межсетевой экран

sudo ufw disable 

2-) Сброс Spyder и прикладные настройки по умолчанию:

spyder --reset 
spyder --default 

3-) снова

spyder 

4- Ran Spyder) Enabled брандмауэр

sudo ufw enable 

И это работает нормально Теперь.

+0

Просто spyder --reset spyder --default работал для меня. – denson

1

У меня была эта проблема. работал над ним в течение нескольких месяцев ... spyder из библиотеки EPEL для Redhat 7 (Scientific Linux).

Наконец-то выяснилось, что мне нужен дополнительный пакет, который не был установлен в качестве требования. python-matplotlib

После добавления пакета python все проблемы исчезли!

Arrrggghhhhh ....... !!!!!