Я только что переустановил python 2.7 на свой macbook pro (с ОС 10.13.6 High Sierra), так как я случайно удалил его, не понимая, что он нужен. У меня также загружен Python 3.6.8 на том же компьютере, и я работаю над «Automate the Boring Stuff», который требует Beautiful Soup для веб-скрапинга. Проблема в том, что мой терминал показывает python v2.7.15 и устанавливает BS4 где-то в этой библиотеке, но мне он нужен для python v3.6.8. Я обновил Setuptools до последней спецификации с помощью:
python -m pip install --upgrade pip setuptools wheel
Если я введу " python3
" в командной строке, пытаясь перейти на версию 3.6.8, я получу:
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.
Все, что я печатаю после этого, приводит либо к синтаксической ошибке, либо если я печатаю:
python --version
он возвращает:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'python' is not defined
Когда я пытаюсь изменить каталог на папку «Загрузки», я получаю следующее:
>>> cd /Users/User/Downloads
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'cd' is not defined
Может кто подскажет в чем проблема с командной строкой? И более того как мне теперь запустить установщик pip из командной строки, чтобы установить / направить пакет BS4 в / в библиотеку python3.6.8?
Наверное, это действительно просто, но я здесь новичок...
Спасибо за вашу помощь.
решение1
Если я введу «python3» в командной строке, пытаясь перейти на версию 3.6.8, я получу:
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.
Все, что я печатаю после этого, приводит к синтаксической ошибке
Это потому, что команды, которые вы вводите, интерпретируютсяПитон, а не ваш терминал. Чтобы вернуться к обычному терминалу, введите quit()
.
как мне теперь запустить установщик pip из командной строки, чтобы установить / направить пакет BS4 в / в библиотеку python3.6.8
Похоже, что когда вы переустановили Python 2.7, его каталоги были добавлены в вашПУТЬ переменная окруженияперед каталогами Python 3. Когда вы входите python
в свой терминал, он будет искать исполняемый файл, названный python
первым втекущий рабочий каталог, а затем через каждый из каталогов в вашемПУТЬ. Он выполняет первое совпадение и прекращает поиск.
Я бы рекомендовал вам отредактировать вашПУТЬпоэтому каталоги Python 3 находятся перед каталогами Python 2. Смотритередактирование переменной PATH на Mac.
Я работаю в Windows, и в моем PATH для Python 3 есть следующие два каталога:
C:\Users\Admin\AppData\Local\Programs\Python\Python37\
C:\Users\Admin\AppData\Local\Programs\Python\Python37\Scripts
Мне нужны оба, потому что python
исполняемый файл находится в первом каталоге, а pip
исполняемый файл — во втором.
Либо смените каталог в терминале на тот, где pip
находится исполняемый файл: cd [...]\Python\Python37\Scripts
.
Теперь вы можете установить Beautiful Soup 4 для Python 3:pip install beautifulsoup4
решение2
Спасибо, Гордон.
Это потому, что команды, которые вы вводите, интерпретируются Python, а не вашим терминалом. Чтобы вернуться к обычному терминалу, введите quit()
Да, это была очевидная ошибка с моей стороны. Спасибо, что поправили меня.
Вопрос сброса PATH для установки приоритета Python 3 над 2 потребует небольшого исследования; я нашел ссылку на пост немного запутанной, но это просто означает, что мне придется немного почитать.
Для меня сработало простое печатаниеpip3 install beautifulsoup4
Я нашел это, когда искал путь к файлу для Python 3.6 и случайно наткнулся на readme.txt, который находится в папке Application этой версии. А именно:
Сосуществование Python 3 и Python 2: Python.org Версии Python 3.6 и 2.7.x могут быть установлены в вашей системе и не будут конфликтовать. Имена команд для Python 3 содержат в себе цифру 3, python3 (или python3.6), idle3 (или idle3.6), pip3 (или pip3.6) и т. д. Имена команд Python 2.7 содержат цифру 2 или не содержат ее: python2 (или python2.7 или python), idle2 (или idle2.7 или idle) и т. д.
Вот так.
Но спасибо за помощь. Вы направили меня в правильном направлении, чтобы быть уверенным.