Как правильно переустановить pip на macOS X, чтобы использовать venv?(EnviromentError: [Errno 13] В доступе отказано) - PullRequest
0 голосов
/ 14 апреля 2019

Я совершенно новичок в Python, поэтому, чтобы немного потренироваться и еще раз, решил создать venv, когда я узнал, что они существуют, и все это сделал там.

Я нахожусь на MacOS X, поэтому у меня уже есть Python2, но, очевидно, пошел, чтобы получить 3.

Я установил последнюю версию Python с пакетом из самого python.org. Пытался достать пип и венв, но не получилось. Итак, я установил Homebrew, а также запустил код для установки python3, потому что я читал, что он поставляется с pip уже среди прочего.

В комплект поставки не вошло pip, и установить его оказалось крайне сложно. Кроме того, создание venv потеряло меня, так как я никогда раньше не программировал на Python.

Я получил все, что сделал в Терминале

Я установил последнюю версию Python3.7.3 для Mac OS X с https://www.python.org/downloads/ Я запустил пакет, и он также предположительно будет поставляться со всем, но когда я запустил

MacBook-Air:~ maria$ pip --version
-bash: pip: command not found

Итак, я сделал то, что сказал их гид по установке pip

MacBook-Air:~ maria$ python -m ensurepip --default-pip

Ignoring indexes: https://pypi.python.org/simple
Requirement already satisfied (use --upgrade to upgrade): setuptools in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
Collecting pip
Installing collected packages: pip
  Exception:
  Traceback (most recent call last):
    File "/var/folders/gj/g8j11snx2ll5xswmw_3696080000gn/T/tmpefPJJh/pip-6.1.1-py2.py3-none-any.whl/pip/basecommand.py", line 246, in main
      status = self.run(options, args)
    File "/var/folders/gj/g8j11snx2ll5xswmw_3696080000gn/T/tmpefPJJh/pip-6.1.1-py2.py3-none-any.whl/pip/commands/install.py", line 352, in run
      root=options.root_path,
    File "/var/folders/gj/g8j11snx2ll5xswmw_3696080000gn/T/tmpefPJJh/pip-6.1.1-py2.py3-none-any.whl/pip/req/req_set.py", line 693, in install
      **kwargs
    File "/var/folders/gj/g8j11snx2ll5xswmw_3696080000gn/T/tmpefPJJh/pip-6.1.1-py2.py3-none-any.whl/pip/req/req_install.py", line 817, in install
      self.move_wheel_files(self.source_dir, root=root)
    File "/var/folders/gj/g8j11snx2ll5xswmw_3696080000gn/T/tmpefPJJh/pip-6.1.1-py2.py3-none-any.whl/pip/req/req_install.py", line 1018, in move_wheel_files
      isolated=self.isolated,
    File "/var/folders/gj/g8j11snx2ll5xswmw_3696080000gn/T/tmpefPJJh/pip-6.1.1-py2.py3-none-any.whl/pip/wheel.py", line 237, in move_wheel_files
      clobber(source, lib_dir, True)
    File "/var/folders/gj/g8j11snx2ll5xswmw_3696080000gn/T/tmpefPJJh/pip-6.1.1-py2.py3-none-any.whl/pip/wheel.py", line 208, in clobber
      os.makedirs(destdir)
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
      mkdir(name, mode)
  OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/pip'

Тогда я сделал

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

с результатом

Installing collected packages: pip, wheel
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/pip'
Consider using the `--user` option or check the permissions.

Затем я даже установил инструменты разработчика командной строки из XCode, чтобы все было готово и чтобы я ничего не пропустил. После этого я установил Homebrew и использовал его для установки python3, и я заметил, что он сказал

Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/2to3
Target /usr/local/bin/2to3
already exists. You may want to remove it:
  rm '/usr/local/bin/2to3'

To force the link and overwrite all conflicting files:
  brew link --overwrite python

To list all files that would be deleted:
  brew link --overwrite --dry-run python

Possible conflicting files are:
/usr/local/bin/2to3 -> /Library/Frameworks/Python.framework/Versions/3.7/bin/2to3
/usr/local/bin/2to3-3.7 -> /Library/Frameworks/Python.framework/Versions/3.7/bin/2to3-3.7
/usr/local/bin/idle3 -> /Library/Frameworks/Python.framework/Versions/3.7/bin/idle3
/usr/local/bin/idle3.7 -> /Library/Frameworks/Python.framework/Versions/3.7/bin/idle3.7
/usr/local/bin/pydoc3 -> /Library/Frameworks/Python.framework/Versions/3.7/bin/pydoc3
/usr/local/bin/pydoc3.7 -> /Library/Frameworks/Python.framework/Versions/3.7/bin/pydoc3.7
/usr/local/bin/python3 -> /Library/Frameworks/Python.framework/Versions/3.7/bin/python3
/usr/local/bin/python3-config -> /Library/Frameworks/Python.framework/Versions/3.7/bin/python3-config
/usr/local/bin/python3.7 -> /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
/usr/local/bin/python3.7-config -> /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7-config
/usr/local/bin/python3.7m -> /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7m
/usr/local/bin/python3.7m-config -> /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7m-config
/usr/local/bin/pyvenv -> /Library/Frameworks/Python.framework/Versions/3.7/bin/pyvenv
/usr/local/bin/pyvenv-3.7 -> /Library/Frameworks/Python.framework/Versions/3.7/bin/pyvenv-3.7
==> /usr/local/Cellar/python/3.7.3/bin/python3 -s setup.py --no-user-cfg install
==> /usr/local/Cellar/python/3.7.3/bin/python3 -s setup.py --no-user-cfg install
==> /usr/local/Cellar/python/3.7.3/bin/python3 -s setup.py --no-user-cfg install
==> Caveats
Python has been installed as
  /usr/local/bin/python3

Так что после этого я все еще бегал

MacBook-Air:~ maria$ pip --version
-bash: pip: command not found
MacBook-Air:~ maria$ python -m ensurepip --default-pip

С результатом

 OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/pip'

плюс один последний раз

MacBook-Air:~ maria$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

но опять получил

Installing collected packages: pip, wheel
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/pip'
Consider using the `--user` option or check the permissions.

Итак, закончил осуждающим sudo easy_install pip

MacBook-Air:~ maria$ pip --version
pip 19.0.3 from /Library/Python/2.7/site-packages/pip-19.0.3-py2.7.egg/pip (python 2.7)
MacBook-Air:~ maria$ python3 -m ensurepip --default-pip
Looking in links: /var/folders/gj/g8j11snx2ll5xswmw_3696080000gn/T/tmpilb3zgrc
Requirement already satisfied: setuptools in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (40.8.0)
Requirement already satisfied: pip in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (19.0.3)

вопреки всем моим страхам что-то испортить, но это сработало, по иронии судьбы. Проблема в том, что я не могу делать вены, потому что я получаю [Errno 13] Permission denied, и я не уверен, что хочу продолжать экспериментировать и испортить это по-настоящему.

Наконец сделал pip install --user pipenv, который, как говорили, успешно работал с некоторыми заметками.

Installing collected packages: virtualenv-clone, enum34, typing, certifi, virtualenv, setuptools, pipenv
  The script virtualenv-clone is installed in '/Users/maria/Library/Python/2.7/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  The script virtualenv is installed in '/Users/maria/Library/Python/2.7/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  The scripts pipenv and pipenv-resolver are installed in '/Users/maria/Library/Python/2.7/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed certifi-2019.3.9 enum34-1.1.6 pipenv-2018.11.26 setuptools-41.0.0 typing-3.6.6 virtualenv-16.4.3 virtualenv-clone-0.5.3

И я не уверен, что делать дальше. Если я все установил правильно, могу ли я начать сейчас или мне нужно что-то отменить и т. Д. Я старался изо всех сил, прежде чем кого-то мучить. Я готов удалить все и сделать это снова с 0.

1 Ответ

0 голосов
/ 14 апреля 2019

Из документации по виртуальной среде:
https://docs.python.org/3/tutorial/venv.html
Чтобы создать виртуальную среду, выберите каталог, в котором вы хотите ее разместить, и запустите модуль venv в виде сценария с путем к каталогу: python3 -m venv tutorial-env
Затем для активации виртуальной среды: source tutorial-env/bin/activate
Активация виртуальной среды изменит подсказку вашей оболочки, чтобы показать, какую виртуальную среду вы используете, и измените среду так, чтобы при запуске python вы получали именно этуверсия и установка Python.

...