Python agora acha que argumentos são arquivos: Broken emerge, pip, livestreamer e a maioria das ferramentas usando Python

2

Para esses comandos (em bash e fish):

sudo emerge eix
emerge eix

Eu recebo este erro:

usage: emerge [-h] [--version] [input [input ...]]
emerge: error: argument input: can't open 'eix': [Errno 2] No such file or directory: 'eix'

Mesma coisa com livestreamer (e "pip install"):

#~/temp> livestreamer http://www.twitch.tv/totalbiscuit
usage: livestreamer [-h] [--version] [input [input ...]]
livestreamer: error: argument input: can't open 'http://www.twitch.tv/totalbiscuit': [Errno 2] No such file or directory: 'http://www.twitch.tv/totalbiscuit'

Se existir um arquivo com o nome do primeiro argumento, recebo o mesmo erro para o segundo argumento:

#~/temp> emerge test eix
usage: emerge [-h] [--version] [input [input ...]]
emerge: error: argument input: can't open 'test': [Errno 2] No such file or directory: 'test'
#~/temp> touch test
#~/temp> emerge test eix
usage: emerge [-h] [--version] [input [input ...]]
emerge: error: argument input: can't open 'eix': [Errno 2] No such file or directory: 'eix'

Como reproduzir (não realmente):

  1. Seja eu, felizmente codificando em um teclado moribundo (cabo rompido, às vezes resulta em criar arquivos estranhos em ~ /).
  2. (talvez não relacionado) Do sudo pip3 uninstall aiohttp_jinja2 no processo, porque eu não preciso mais dele (invólucro do mecanismo de templates Jinja2 para o servidor web aiohttp.web AsyncIO).
  3. Saiba que pip, emerge e livestreamer não funcionam.
  4. Encontre um estranho diretório vazio / home / username / ~ / (era um diretório real ~ / ~ /, não um ponteiro para ~ /.), remova-o da frustração com rm -r \~/
  5. Vá dormir depois de 10 horas de trabalho.
  6. Acorde, as ferramentas que usam o Python ainda não funcionam após a inicialização, descobrem que o diretório ~ / ~ / está lá novamente, remova-o novamente.
  7. Tente alterar a versão primária do Python para 2.7 de 3.3 ( sudo eselect python set 1 ), não ajuda.
  8. Faça o download do link e instale-o manualmente com sudo python3 setup.py install , isso não ajuda (provavelmente algo ainda falado nos módulos principais do Python, talvez os ou configparser , não tenho certeza.
  9. Faça uma pergunta no link , perceba que é muito técnico e relacionado ao Linux, pergunte aqui.

O iPython também está morto de uma forma interessante (ipython e ipython3):

#~> ipython
You are running chardetect interactively. Press CTRL-D twice at the start of a blank line to signal the end of your input. If you want help, run chardetect --help

Alguma sugestão?

Atualização: Aproximando-se.

Então /usr/bin/python2.7 /usr/lib/python-exec/python2.7/emerge -av eix funciona muito bem, acho que o problema está relacionado a python-exec2 de alguma forma:

#~> file /usr/bin/livestreamer
/usr/bin/livestreamer: symbolic link to ../lib/python-exec/python-exec2
#~> file /usr/bin/emerge
/usr/bin/emerge: symbolic link to ../lib/python-exec/python-exec2
#~> file /usr/bin/pip
/usr/bin/pip: symbolic link to ../lib/python-exec/python-exec2
#~> file /usr/bin/pip3
/usr/bin/pip3: symbolic link to ../lib/python-exec/python-exec2
    
por kolobos 25.04.2015 / 07:07

1 resposta

3

Os programas com os quais você está tendo problemas são executados usando o wrapper de script dev-lang/python-exec , que parece ter sido corrompido de alguma forma.

Para tentar reinstalar esse pacote, supondo que nada tenha sido gravemente prejudicado, você pode tentar (ajustar o número da versão para corresponder aos pacotes instalados):

/usr/bin/python2.7 /usr/lib/python-exec/python2.7/emerge -1a dev-lang/python-exec

Se a sua instalação em python também estiver corrompida (ou algum outro pacote crítico do sistema), você poderá recuperar usando pacotes binários. Você pode fazer o download de alguns dos Tinderbox .

Dependendo de quão mal a instalação está quebrada, você pode ter que inicializar em um Live CD para baixar os pacotes e montar manualmente seus sistemas de arquivos para instalar os pacotes binários.

    
por 25.04.2015 / 09:14