#python #python-3.x #macos #python-2.7 #pip
#python #python-3.x #macos #python-2.7 #pip
Вопрос:
Мне нужно установить 2 пакета на python
pip install requests
pip install websocket-client
На YouTube есть видео, которое отлично показывает, как это сделать https://www.youtube.com/watch?v=237dNNQhD3Q Я попробовал это в Windows, и это работает отлично. Однако мне нужно установить эти пакеты на Mac.
Во-первых, я выполнил шаги, описанные здесь, чтобы загрузить pip https://www.geeksforgeeks.org/how-to-install-pip-in-macos /
Вывод в терминале следующий:
MacBook-Pro-3:~ GSuh$ curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1842k 100 1842k 0 0 7005k 0 —:--:— —:--:— —:--:— 7005k
MacBook-Pro-3:~ GSuh$ sudo python get-pip.py
Password:
Sorry, try again.
Password:
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-pro.. pip 21.0 will remove support for this functionality.
WARNING: The directory '/Users/GSuh/Library/Caches/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pip
Downloading pip-20.2.4-py2.py3-none-any.whl (1.5 MB)
|################################| 1.5 MB 2.6 MB/s
Installing collected packages: pip
Successfully installed pip-20.2.4
MacBook-Pro-3:~ GSuh$ sudo pip install requests
WARNING: The directory '/Users/GSuh/Library/Caches/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting requests
Downloading requests-2.24.0-py2.py3-none-any.whl (61 kB)
|████████████████████████████████| 61 kB 375 kB/s
Collecting certifi>=2017.4.17
Downloading certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
|████████████████████████████████| 156 kB 607 kB/s
Collecting chardet<4,>=3.0.2
Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
|████████████████████████████████| 133 kB 3.6 MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
Downloading urllib3-1.25.11-py2.py3-none-any.whl (127 kB)
|████████████████████████████████| 127 kB 10.4 MB/s
Collecting idna<3,>=2.5
Downloading idna-2.10-py2.py3-none-any.whl (58 kB)
|████████████████████████████████| 58 kB 649 kB/s
Installing collected packages: certifi, chardet, urllib3, idna, requests
Successfully installed certifi-2020.6.20 chardet-3.0.4 idna-2.10 requests-2.24.0 urllib3-1.25.11
MacBook-Pro-3:~ GSuh$ sudo pip install websocket-client
WARNING: The directory '/Users/GSuh/Library/Caches/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting websocket-client
Downloading websocket_client-0.57.0-py2.py3-none-any.whl (200 kB)
|████████████████████████████████| 200 kB 2.4 MB/s
Collecting six
Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Installing collected packages: six, websocket-client
Successfully installed six-1.15.0 websocket-client-0.57.0
MacBook-Pro-3:~ GSuh$ python
WARNING: Python 2.7 is not recommended.
This version is included in macOS for compatibility with legacy software.
Future versions of macOS will not include Python 2.7.
Instead, it is recommended that you transition to using 'python3' from within Terminal.
Python 2.7.16 (default, Aug 24 2019, 18:37:03)
[GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.32.4) (-macos10.15-objc-s on darwin
Type "help", "copyright", "credits" or "license" for more information.
»> import requests
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named requests
»>
В результате пакеты считаются загруженными, однако я не могу их использовать. Как я могу это исправить?
Ответ №1:
Установка пакетов python на Mac — это немного кошмар. К счастью, виртуальные среды могут спасти ситуацию, сделав все это намного более управляемым. Существует множество руководств, которые помогут вам настроить это, но все сводится к правильной настройке вашего PYTHONPATH и указанию на соответствующие библиотеки.
Если вы не будете осторожны, вы получите ужасную среду python xkcd. Это распространенная проблема, которая много раз решалась в разных проектах, таких как pipenv
and pyenv
и venv
, и, возможно, в других.
Я настоятельно рекомендую вам настроить виртуальную среду python с помощью следующих инструментов:
- Доморощенный
- PyEnv
- Pipenv или virtualenv (необязательно)
Homebrew позволяет вам быстро устанавливать необходимые инструменты и различные другие зависимости вместе с соответствующими конфигурациями в несколько согласованной манере.
После установки homebrew вы можете легко установить pyenv
его, что позволяет создавать несколько внутренне согласованных сред python.
Оттуда вы можете установить pip
в своей новой виртуальной среде PyEnv и настроить базовую среду.
Я предпочитаю использовать Pipenvironment в PyEnviron для каждого проекта, чтобы предотвратить конфликтующие зависимости.