Установка Python 3.4 и 2.7 без Script и нет установленного протокола

Я делал новую установку для Python 2.7.9 и 3.4.3 на Win7 X64 сегодня, и я обнаружил, что в папке Python27 и Python34 нет папки Script в папке первого дочернего уровня, но есть один в Tools. Однако я не мог найти pip в этой папке Script, хотя по умолчанию pip должен быть установлен с Python. Другая, что я делал для моего другого ПК и ноутбука, - это папка Script (как дочерняя папка первого уровня в Python27 и Python34), содержащая pip. Так, что происходит? как установить pip и, возможно, другие полезные скрипты таким образом?

[EDIT] Я пробовал python -m ensurepip в Python34. Я получил следующие ошибки:

Ignoring indexes: https://pypi.python.org/simple
Collecting setuptools
 Exception:
 Traceback (most recent call last):
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none-
any.whl\pip\basecommand.py", line 232, in main
  status = self.run(options, args)
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none-
any.whl\pip\commands\install.py", line 339, in run
  requirement_set.prepare_files(finder)
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none-
any.whl\pip\req\req_set.py", line 333, in prepare_files
  upgrade=self.upgrade,
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none-
any.whl\pip\index.py", line 326, in find_requirement
  file_locations, url_locations = self._sort_locations(locations)
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none-
any.whl\pip\index.py", line 158, in _sort_locations
  sort_path(os.path.join(path, item))
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none-
any.whl\pip\index.py", line 139, in sort_path
  if mimetypes.guess_type(url, strict=False)[0] == 'text/html':
File "C:\Python34\lib\mimetypes.py", line 287, in guess_type
  init()
File "C:\Python34\lib\mimetypes.py", line 348, in init
  db.read_windows_registry()
File "C:\Python34\lib\mimetypes.py", line 255, in read_windows_registry
  with _winreg.OpenKey(hkcr, subkeyname) as subkey:
TypeError: OpenKey() argument 2 must be str without null characters or None,  not str

[РЕДАКТИРОВАТЬ] Проблема связана с несколькими нулевыми ключами реестра в HKEY_LOCAL_MACHINE, из-за которых не удалось выполнить поиск read_windows_registry() в mimetypes.py. Вот сообщение, которое приводит к решению:

Python 'и повреждение реестра Windows

спасибо

Ответы

Ответ 1

Если вы использовали установщику Windows PSF (python.org).msi, то в pythonxy/Lib/site-пакетах для 3.4.0+ и 2.7.9+ необходимо установить pip (и зависимости). Также должен быть pythonxy/Scripts, содержащий около 5.exe. Это последняя часть процесса установки. На короткое время появится окно командной строки. Возможно, у вас не было установлен флажок install pip при выполнении установок (хотя это должно было быть проверено по умолчанию). Возможно, произошла ошибка, которую вы пропустили.

В любом случае, вы должны иметь pythonxy/Lib/обеспечитьpip/* для обоих версий 2.7 и 3.4, и теперь вы сможете запустить этот модуль. В командной строке попробуйте python -m ensurepip в обоих... /python 27 и.../python34.

Ответ 2

Эта проблема является официальной ошибкой: Issue23604.

Я столкнулся с той же проблемой и исправил ее успешно, используя метод в Блог Swarley.

Ответ 3

Была такая же проблема, переустановка не помогла.

Наконец исправил это, запустив python -m ensurepip от имени администратора.

Ответ 5

Windows 10. У меня была эта проблема при установке Python 2.7 в C: /Program Files/Python27.. Я думаю, что в этом случае это была проблема пути. Исправлено было выполнить установку в C: /Python27, скопировать папку Scripts из этой установки в установку в C: /Program Files/Python27. Все остальное (включая пути к Python и Scripts) было в порядке.

Ответ 6

Сегодня я столкнулся с тем же вопросом, пытаясь установить Python 2.7.13 на свой компьютер; после некоторого исследования я понял, что v.3.60 ( "Anaconda" ) уже присутствует (он появился вместе с Microsoft Visual Studio 2017, который я установил пару недель назад).

Я подозревал какое-то несоответствие пути в реестре, поэтому я попытался удалить оба Python v. 3.60 и 2.17 и очистить реестр, удалив ключ HKCU\Software\Python (который по какой-то причине все еще присутствовал). После этого я смог правильно установить версию 2.7.13, и на этот раз присутствует папка \scripts со всем ожидаемым содержимым.

Я не знаю, может ли возникнуть проблема с установкой v. 3.6: я не буду пытаться это сделать в течение времени, которое я сейчас разрабатываю для v.2.7.

Надеюсь, что это может принести некоторую помощь.

Макс - Италия


EDIT: Я провел некоторое расследование и подумал, что обнаружил причину (в моем случае), в папке \Scripts отсутствует: путь, по которому я собирался установить Python, находится в виртуальном диске.

В моем компьютере у меня есть только один раздел (C:), и я сопоставил папку (C:\Development) как D:, затем я попытался установить Python на D:\Python27; по-видимому, это не "хорошо" и вызывает некоторые проблемы у установщика.

После обнаружения этого я попытался установить реальный путь, и теперь все кажется ОК.

Макс.

Ответ 7

Угадайте, что? Если у вас установлен NetBeans (или, возможно, GlassFish), он может сломать установку для pip!

Подробности: там ошибка в установщике NetBeans, которая иногда может разбивать реестр Windows так, как это не ожидалось другими установщиками.

@Ответ J3soon был близок, но Сообщение в блоге Swarley не исправила проблему в моей среде, поскольку она не была нулевым символом, но была другим видом повреждения реестра.

И вот как я избавился от этой проблемы. Запустите следующий PowerShell script:

$local_key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'
$machine_key = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*'
$machine_key6432 = 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
$items = Get-ChildItem @($local_key, $machine_key, $machine_key6432)
$ErrorActionPreference = 'Stop'

foreach ($item in $items) {
    Write-Output $item.PSPath
    $null = Get-ItemProperty $item.PSPath
}

Он будет записывать имена ключей реестра в вывод. Если он печатает ошибку, возьмите последний последний отпечаток и удалите это из реестра (используя PowerShell или regedit или любой другой инструмент, который вы предпочитаете).

После этого переустановите Python, и он должен установить pip, как предполагалось.

Ответ 8

Основываясь на сочетании того, что здесь, и что я нашел в другом месте, вот как я его исправил:

Удалите все, что уже установлено. Перейдите в regedit и HKLM/SOFTWARE/Python и удалите весь раздел python. Переустановка Python

На этот раз это установлено в папке с скриптами.

Надеюсь, это поможет кому-то.

Ответ 9

Я использую python 3.6.2 и столкнулся с аналогичной проблемой с отсутствующей папкой сценариев (также pip script) в папке python. Я сделал следующее, чтобы снова добавить папку сценариев в python.

  • Goto - Панель управления\Все элементы панели управления\Программы и функции     затем найдите программу python и попробуйте удалить ее. Поп-окно     появится следующее изображение.

Изображение Python

Попробуйте восстановить установленную программу, которая должна устранить проблему.

  1. В противном случае установите флажок "МОДИФИКАЦИЯ" и отметьте флажок "Пить" и установите флажок "Добавить Python в переменные среды", а затем установите его. Это должно решить проблему.

Ответ 10

Даже я столкнулся с этой проблемой. Я решил это, выполнив следующие шаги:

  • Удалите python. (вы можете использовать установщик (python-2.7.xx.msi) для выполнения удаления. Выберите параметр "Удалить Python'on, дважды щелкнув установщик.)

  • Отредактируйте переменную окружения "Путь" и удалите путь к каталогу python. (Чтобы изменить переменную окружения, щелкните правой кнопкой мыши на "Этот компьютер", щелкните свойства, нажмите "Дополнительные свойства системы" → Переменные среды)

  • Удалите переменную среды "Путь Python", если она есть.

  • Теперь переустановите python.

Это сработает!!!

Ответ 11

Фактически папка "Сценарии" не будет создана после установки python, вам придется вручную создать эту папку, а затем установить pip, после чего вы сможете найти необходимые файлы в этом каталоге.

Ответ 12

Я также столкнулся с той же проблемой, которую мне удалось решить. Проблема заключается в том, что когда вы устанавливаете python в конфигурации по умолчанию, он устанавливает папку python в "c:\user\Appdata......", которая является длинной и трудной для поиска. Чтобы избежать этого, сначала полностью удалите python 3.7 из системы с панели управления → удалить программу. Затем установите его снова с опцией "настроить установку". На следующей странице измените расположение по умолчанию на C: /Python/Python37-32, установите необходимые флажки и нажмите "Установить". Это должно решить вашу проблему.

Ответ 13

Это вопрос разрешения. У меня оба Python 2 и 3 установлены под

C:\Program Files\python\2.7.16

C:\Program Files\python\3.7.2

Установщик Python 2 - msi, поэтому при его установке не run as admin опция от имени run as admin

Установщик Python 3 является exe, там run as admin опция run as admin.

В результате Python 2 установлен без scripts а pip.exe и python 3 установлены успешно.

Чтобы это исправить, просто дайте full разрешение everyone на

C:\Program Files\python\ и снова установите python 2. затем измените разрешение обратно.

Это.

Ответ 14

Эта команда прекрасно работает для меня:

python -m ensurepip

Просмотр ссылок: C:\Users\kjangala\AppData\Local\Temp\tmpvd4_442i
Сбор setuptools
Сбор пипса
Установка собранных пакетов: setuptools, pip
Успешно установленный pip-19.0.3 setuptools-40.8.0

Ответ 15

У меня была эта проблема после получения нового компьютера и восстановления папки appdata (корпоративная система сделала это автоматически для меня). Каким-то образом некоторые старые метаданные в моей папке %userprofile%\AppData\Local\Programs\Python сделали папку Scripts внутри пустой, когда я переустановил Python.

Я удалил эту папку и удалил/переустановил Python, и все снова работает.

Изменить: мне также пришлось удалить %userprofile%\AppData\Roaming\Python, чтобы устранить еще одну похожую ошибку. Интересно, что этот не воссоздан при переустановке.