Eu tive um problema relacionado. Spyder (versão 2.2.5) caiu. Eu tentei reabri-lo depois de reiniciar o meu computador, mas nada aconteceu, clicando no símbolo no lançador não fez nada, também apenas digitando
spyder
em uma linha de comando não resultou na ativação da GUI, mas também não resultou em uma mensagem de erro. No entanto, digitando
spyder --new-instance
resultou no acionamento da GUI. Olhando para o arquivo
start_app.py
no diretório
/usr/lib/python2.7/dist-packages/spyderlib/
ficou claro que as seguintes linhas de código eram o problema:
if CONF.get('main', 'single_instance') and not options.new_instance \
and not mac_app:
# Minimal delay (0.1-0.2 secs) to avoid that several
# instances started at the same time step in their
# own foots while trying to create the lock file
time.sleep(random.randrange(1000, 2000, 90)/10000.)
# Lock file creation
lockf = get_conf_path('spyder.lock')
lock = lockfile.FilesystemLock(lockf)
# lock.lock() tries to lock spyder.lock. If it fails,
# it returns False and so we try to start the client
if not lock.lock():
if args:
send_args_to_spyder(args)
else:
atexit.register(lock.unlock)
from spyderlib import spyder
spyder.main()
else:
from spyderlib import spyder
spyder.main()
Então, alguma instância do spyder foi criada anteriormente e criou o arquivo
spyder.lock
que resultou na lista vazia de argumentos dada pelo comando
spyder
sendo passado para o spyder, resultando em nenhuma ação:
send_args_to_spyder(args)
Assim, renomear o arquivo spyder.lock fez o spyder disparar novamente usando o iniciador de aplicativos ou um terminal.