Установка 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
от имени администратора.
Ответ 4
Решено путем установки Python 2.7.13
https://www.python.org/downloads/release/python-2713/
Ответ 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
Попробуйте восстановить установленную программу, которая должна устранить проблему.
- В противном случае установите флажок "МОДИФИКАЦИЯ" и отметьте флажок "Пить" и установите флажок "Добавить 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
, чтобы устранить еще одну похожую ошибку. Интересно, что этот не воссоздан при переустановке.