Acabei de reinstalar o python 2.7 no meu macbook pro (executando o OS 10.13.6 High Sierra), pois o removi inadvertidamente, sem perceber que era necessário. Também tenho o Python 3.6.8 carregado no mesmo computador e estou trabalhando em "Automate the Boring Stuff", que requer Beautiful Soup para web scraping. O problema é que meu Terminal indica python v2.7.15 e está instalando o BS4 em algum lugar dessa biblioteca, mas estou precisando dele para python v3.6.8. Atualizei o Setuptools para as especificações mais recentes usando:
python -m pip install --upgrade pip setuptools wheel
Se eu digitar " python3
" na linha de comando na tentativa de chegar à v3.6.8, recebo:
Python 3.6.8 (v3.6.8:3c6b436a57, Dec 24 2018, 02:04:31)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Tudo o que digito depois disso gera um erro de sintaxe ou se eu digitar:
python --version
ele retorna:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'python' is not defined
Quando tento mudar o diretório para a pasta Downloads, recebo o seguinte:
>>> cd /Users/User/Downloads
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'cd' is not defined
Alguém pode aconselhar qual é o problema com a linha de comando? Além disso, como executo agora o instalador pip a partir da linha de comando para instalar/direcionar o pacote BS4 em/para a biblioteca python3.6.8?
Provavelmente é muito simples, no entanto, sou um pouco novato aqui ...
Obrigado pela ajuda.
Responder1
Se eu digitar "python3" na linha de comando na tentativa de chegar à v3.6.8, recebo:
Python 3.6.8 (v3.6.8:3c6b436a57, Dec 24 2018, 02:04:31) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information.
Tudo o que digito depois disso me dá um erro de sintaxe
Isso ocorre porque os comandos que você está inserindo estão sendo interpretados porPitão, não o seu terminal. Para voltar ao seu terminal normal, digite quit()
.
como agora executo o instalador pip a partir da linha de comando para instalar/direcionar o pacote BS4 em/para a biblioteca python3.6.8
Parece que quando você reinstalou o Python 2.7, seus diretórios foram adicionados ao seuCAMINHO variável de ambienteantes dos diretórios do Python 3. Quando você entrar python
no seu terminal, ele procurará um executável nomeado python
primeiro nodiretório de trabalho atuale, em seguida, através de cada um dos diretórios em seuCAMINHO. Ele executa a primeira partida e para de procurar.
Eu recomendaria editar seuCAMINHOportanto, os diretórios do Python 3 estão antes dos diretórios do Python 2. Vereditando a variável PATH no mac.
Estou executando o Windows e tenho estes dois diretórios em meu PATH para Python 3:
C:\Users\Admin\AppData\Local\Programs\Python\Python37\
C:\Users\Admin\AppData\Local\Programs\Python\Python37\Scripts
Preciso de ambos, porque o python
executável está no primeiro diretório e o pip
executável está no segundo.
Alternativamente, mude o diretório em seu terminal para onde pip
está o executável: cd [...]\Python\Python37\Scripts
.
Agora você pode instalar o Beautiful Soup 4 para Python 3:pip install beautifulsoup4
Responder2
Obrigado Gordon.
Isso ocorre porque os comandos que você está inserindo estão sendo interpretados pelo Python, não pelo seu terminal. Para voltar ao seu terminal normal, digite quit()
Sim, isso foi um erro óbvio da minha parte. Obrigado por me esclarecer.
A questão de redefinir o PATH para priorizar Python 3 em vez de 2 exigirá um pouco de pesquisa; Achei o post vinculado um pouco confuso, mas significa apenas que preciso ler um pouco.
O que funcionou para mim foi simplesmente digitarpip3 install beautifulsoup4
Eu descobri isso enquanto procurava o caminho do arquivo para Python 3.6 e encontrei o readme.txt que fica na pasta Application dessa versão. A saber:
Coexistência entre Python 3 e Python 2: Python.org As versões Python 3.6 e 2.7.x podem ser instaladas em seu sistema e não entrarão em conflito. Os nomes dos comandos para Python 3 contêm um 3, python3 (ou python3.6), idle3 (ou idle3.6), pip3 (ou pip3.6), etc. Os nomes dos comandos do Python 2.7 contêm 2 ou nenhum dígito: python2 ( ou python2.7 ou python), inativo2 (ou inativo2.7 ou inativo), etc.
Então aí está.
Mas obrigado pela sua ajuda. Você me enviou na direção certa para ter certeza.