Some python components that have been installed might get inconsistent after cancellation
Some python components that have been installed might get inconsistent after cancellation
Ошибка при установке пакета
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File «c:\users\нр\appdata\local\programs\python\python36-32\lib\site-packages\
pip\basecommand.py», line 215, in main
status = self.run(options, args)
File «c:\users\нр\appdata\local\programs\python\python36-32\lib\site-packages\
pip\commands\install.py», line 342, in run
prefix=options.prefix_path,
File «c:\users\нр\appdata\local\programs\python\python36-32\lib\site-packages\
pip\req\req_set.py», line 784, in install
**kwargs
File «c:\users\нр\appdata\local\programs\python\python36-32\lib\site-packages\
pip\req\req_install.py», line 878, in install
spinner=spinner,
File «c:\users\нр\appdata\local\programs\python\python36-32\lib\site-packages\
pip\utils\__init__.py», line 676, in call_subprocess
line = console_to_str(proc.stdout.readline())
File «c:\users\нр\appdata\local\programs\python\python36-32\lib\site-packages\
pip\compat\__init__.py», line 75, in console_to_str
return s.decode(‘utf_8’)
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xed in position 48: invalid
continuation byte
в чём беда? стоит windows 8. Заранее спасибо.
При установке зависимостей пакета вылазит ошибка «error: Unable to find vcvarsall.bat»
вообщем система win7, python 2.7.3, при установке в virtualenv pillow с помощью pip’а.

С сайта взял ссылку и ввел команду pip3 install https://download.pytorch.org/whl/cpu/torch-1.
Ошибка при установке
Добрый вечер. Решил изучать питон и первый подводный камень встретил сразу же при установке. При.
Решение проблем с модулями и пакетами Python
Я с завидной регулярностью сталкиваюсь со всевозможными ошибками, так или иначе связанными с модулями Python. Существует огромное количество разнообразных модулей Python, которые разработчики активно используют, но далеко не всегда заботятся об установке зависимостей. Некоторые даже не удосуживаются их документировать. Параллельно существует две мажорные версии Python: 2 и 3. В разных дистрибутивах отдано предпочтение одной или другой версии, по этой причине самостоятельно установленную программу в зависимости от дистрибутива нужно при запуске предварять python или python2/python3. Например:
Причём обычно не происходит никаких проверок и угадали ли вы с выбором версии или нет вы узнаете только при появлении первых ошибок, вызванных неправильным синтаксисом программного кода для данной версии.
Также прибавляет путаницу то, что модули можно установить как из стандартного репозитория дистрибутивов, так и с помощью pip (инструмент для установки пакетов Python).
Цель этой заметки — рассмотреть некоторые характерные проблемы модулей Python. Все возможные ошибки вряд ли удастся охватить, но описанное здесь должно помочь понять, в каком примерно направлении двигаться.
Отсутствие модуля Python
Большинство ошибок модулей Python начинаются со строк:
В них трудно разобраться, поэтому поищите фразы вида:
За ними следует название модуля.
Поищите по указанному имени в системном репозитории, или попробуйте установить командой вида:
Пакет Python установлен, но программа его не видит
Причина может быть в том, что вы установили модуль для другой версии. Например, программа написана на Python3, а вы установили модуль с этим же названием, но написанный на Python2. В этом случае он не будет существовать для программы. Поэтому нужно правильно указывать номер версии.
Команда pip также имеет свои две версии: pip2 и pip3. Если версия не указана, то это означает, что используется какая-то из двух указанных (2 или 3) версий, которая является основной в системе. Например, сейчас в Debian и производных по умолчанию основной версией Python является вторая. Поэтому в репозитории есть два пакета: python-pip (вторая версия) и python3-pip (третья).
В Arch Linux и производных по умолчанию основной версией является третья, поэтому в репозиториях присутствует пакет python-pip (третья версия) и python2-pip (вторая).
Это же самое относится к пакетам Python и самому Python: если версия не указана, значит имеется ввиду основная для вашего дистрибутива версия. По этой причине многие пакеты в репозитории присутствуют с двумя очень похожими названиями.
Установлена новая версия модуля, но программа видит старую версию
Я несколько раз сталкивался с подобными необъяснимыми ошибками.
Иногда помогает удаление модуля командой вида:
Также попробуйте удалить его используя системный менеджер пакетов.
Если модуль вам нужен, попробуйте вновь установить его и проверьте, решило ли это проблему.
Если проблема не решена, то удалите все файлы модуля, обычно они расположены в папках вида:
Ошибки с фразой «AttributeError: ‘NoneType’ object has no attribute»
Ошибки, в которых присутствует слово AttributeError, NoneType, object has no attribute обычно вызваны не отсутствием модуля, а тем, что модуль не получил ожидаемого аргумента, либо получил неправильное число аргументов. Было бы правильнее сказать, что ошибка вызвана недостаточной проверкой данных и отсутствием перехвата исключений (то есть программа плохо написана).
В этих случаях обычно ничего не требуется дополнительно устанавливать. В моей практике частыми случаями таких ошибок является обращение программы к определённому сайту, но сайт может быть недоступен, либо API ключ больше недействителен, либо программа не получила ожидаемые данные по другим причинам. Также программа может обращаться к другой программе, но из-за ошибки в ней получит не тот результат, который ожидала, и уже это вызывает приведённые выше ошибки, которые мы видим.
Опять же, хорошо написанная программа в этом случае должна вернуть что-то вроде «информация не загружена», «работа программы N завершилась ошибкой» и так далее. Как правило, нужно разбираться с причиной самой первой проблемы или обращаться к разработчику.
Модуль установлен, но при обновлении или обращении к нему появляется ошибки
Это самая экзотическая ошибка, которая вызвана, видимо, повреждением файлов пакета. К примеру, при попытке обновления я получал ошибку:
При этом сам модуль установлен как следует из самой первой строки.
Проблема может решиться удалением всех файлов пакета (с помощью rm) и затем повторной установки.
К примеру в рассматриваемом случае, удаление:
После этого проблема с модулем исчезла.
Заключение
Пожалуй, это далеко не полный «справочник ошибок Python», но если вы можете сориентироваться, какого рода ошибка у вас возникла:
Так вот, если вы хотя бы примерно поняли главную причину, то вам будет проще понять, в каком направлении двигаться для её решения.
проблема при установке (библиотека Python) face_recognition в Windows 10/11
Я использую python 3.9.9 pip 21.3.1
Я пытаюсь установить face_recognition
И когда я попытался установить face_recognition с помощью команды pip install face_recognition Получилось следующее:
Хотя я пробовал много решений, но ни одно из них не решило мою проблему
1 ответ
К счастью, я решил проблему. Вот шаги, чтобы загрузить библиотеку face_recognition:
1- установить python:
в командной строке напишите python и нажмите Enter, откроется Microsoft Store для вас: «нажмите» скачать «или» установить «, чтобы загрузить и установить python. «чтобы проверить, загружен ли он или нет, введите python в командная строка
2- установите pip, если у вас его нет:
3-Установить инструменты Visual Studio для C ++
перейдите по ссылке: https://visualstudio.microsoft.com/ и загрузите сообщество версия VS. после загрузки установите его и выберите следующее параметры на странице установки:
image1 image2
и выберите установить
4- установка cmake
Введите команду pip install cmake и дождитесь ее установки.
5- Добавьте cmake в переменную Path
6- Установить dlib
напишите в командной строке следующую команду: pip install dlib
7- установить face_recognition
напишите в командной строке следующую команду: pip install face_recognition
8- начните свой проект в PyCharm
нажмите «Файл» нажмите «Сидения» в типе поиска «интерпретатор» выберите «интерпретатор Python» выберите «показать все» нажмите «+» знак выберите систему Интерпретатор выберите интерпретатор, путь к которому начинается с каталога «пользователи»
Это решение, которое я использовал для решения моей проблемы
Сложности с Python
Введение
Вы можете избавить себя от головной боли прочитав статью virtualenv или venv
Установлено несколько версий Python
Итак, Вы установили python, pipe, pipenv, requests и ещё много чего, но вдруг выяснили, что на компьютере уже не одна, а несколько версий python.
Например, у Вас установлены версии 2.7 и 3.5.
Когда Вы запускаете python, то хотите, чтобы работала последняя версия, но, почему-то работает версия 2.7.
Выясним, как разобраться в этой ситуации.
Как видите, в моей Ubuntu Python находится в /usr/bin/python и имеет версию 2.7.18rcl
Третий Python тоже установлен, посмотреть версию и директорию также просто
Резюмируем: второй Python вызывается командой python а третий Python командой python3.
Обычно Python установлен в директорию /usr/bin
python3 is hashed (/usr/bin/python3)
python3 is hashed (/usr/bin/python)
Python 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0] on linux Type «help», «copyright», «credits» or «license» for more information.
>>> import sys
>>> sys.executable
Если у вас уже был третий Python, например 3.8.5, а вы самостоятельно скачали и установили более позднюю версию, например 3.9.1 как в инструкции то у вас будет два разных третьих Python.
Убедиться в этом можно изучив директорию
В такой ситуации вам нужно специально указывать полную версию python3.9 для запуска программ, либо настроить alias
Если ни одна из команд pyhon и python3 не работает, бывает полезно проверить переменную PATH
Как вы можете убедиться моя директория /usr/bin прописана в PATH
Если вам нужно добавить директорию в PATH читайте статью «PATH в Linux» или статью «PATH в Windows»
Важно понимать, что если в каждой из директорий, упомянутых в PATH, будет установлено по какому-то Python выполняться будет тот, который в первой директории.
Если нужно использовать Python из какой-то определённой директории, нужно прописать её путь. В этом случае не обязательно наличие этого пути в PATH
Python 3.8.5 (default, Jul 28 2020, 12:59:40) [GCC 9.3.0] on linux Type «help», «copyright», «credits» or «license» for more information. >>>
>>> говорит о том, что Python в интерактивном режиме.
Выясним куда смотрит pip
/home/andrei/.local/lib/python2.7/site-packages (python 2.7)
Как видите, pip смотрит в директорию python2.7 поэтому всё, что мы до этого устанавливали командой pip install попало к версии 2.7 а версия 3.5 не имеет ни pipenv ни requests и, например, протестировать интерфейсы с её помощью не получится
Command ‘pip’ not found, but there are 18 similar ones.
Посмотрите что выдаст
В моей Ubuntu результат такой
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
Посмотреть куда pip установил пакет можно командой pip show
Проверим, куда установлен модуль requests, который пригодится нам для работы с REST API
pip show requests
Name: requests Version: 2.22.0 Summary: Python HTTP for Humans. Home-page: http://python-requests.org Author: Kenneth Reitz Author-email: me@kennethreitz.org License: Apache 2.0 Location: /usr/lib/python3/dist-packages Requires: Required-by: yandextank, netort, influxdb
alias
Если вы работаете в Linux можете прописать alias python=python3
Установить дополнительную версию Python
Если вы осознанно хотите установить определённую версию Python в добавок к уже существующей выполните
Куда устанавливаются различные версии Python
Просмотрите содержимое /usr/local/bin
Результат на моём ПК показывает, что здесь находится версия 3.5
Версия 2.7 скорее всего здесь /home/andrei/.local/lib/
Результат на моём ПК
Существует несколько способов обойти эту проблему. Сперва рассмотрим использование команды python3.
Как мы только что смогли убедиться команда python3 использует новую версию Python.
sudo apt install python3-pip
Проверим, что он установился в нужную директорию
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
Теперь установим pipenv
pip3 install pipenv
Установить пакет для определённой версии Python
Если у вас несколько версий Python и нужно установить какой-то пакет только для определённой версии, назовём её X.X, воспользуйтесь командой
ModuleNotFoundError: No module named ‘urllib2’
Модуль urllib2 был разделён на urllib.request и urllib.error
Нужно заменить на
import urllib.request
import urllib.error
TabError: inconsistent use of tabs and spaces in indentation
Эта ошибка обычно вызвана тем, что нажатие TAB не эквивалентно трём пробелам.
Можно попробовать заменить все отступы на пробелы строго соблюдая равенство количества пробелов везде где нужно.
ModuleNotFoundError: No module named ‘requests’
Эта ошибка обычно вызвана тем, что модуль requests не установлен, либо установлен, но не для того python, который Вы запустили.
Например, для python2.6 установлен, а для python3 не установлен.
Можно попробовать установить модуль requests. Подробнее про это я писал в статье Тестирование с помощью Python. Потому что столкнулся с этой проблемой впервые именно при тестировании API
Если эта проблема возникла при использовании PyCharm установите requests для Вашего проекта по следующей инструкции
Перейдите в настройки проекта нажав
Выберите раздел Project Interpreter
Нажмите на плюс в правой части экрана
Введите в стоку поиска название нужного модуля. В моём случае это requests
Введите в поиске requests
Должно открыться окно Available Packages
Нажмите кнопку Install Package
Дождитесь окончания установки
Дождитесь окончания установки
SyntaxError: Missing parentheses in call to ‘print’
Эта ошибка обычно появляется когда Вы пробуете в python 3 использовать print без скобок, так как это работало в python 2
В python 3 нужно использовать скобки
TypeError: getsockaddrarg: AF_INET address must be tuple, not str
Эта ошибка обычно появляется когда Вы неправильно ставите кавычку, указывая куда нужно подключиться.
(ip, port), ip обычно в кавычках, порт без
Пример (‘10.6.0.100’, 10000)
Ошибка возникает если взять в кавычки и ip и порт, тогда вместо кортежа передаётся строка, на что и жалуется интерпретатор.
Traceback (most recent call last): File «send.py», line 4, in sock.connect((‘10.6.0.130,9090’)) TypeError: getsockaddrarg: AF_INET address must be tuple, not str
Не выполняется команда virtualenv
Вы получаете что-то в духе:
virtualenv : The term ‘virtualenv’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + virtualenv juha_env +
+ CategoryInfo : ObjectNotFound: (virtualenv:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
Не активируется виртуальное окружение
Сначала разберём случай в чистом virtualenv потом перейдём к virtualenvwrapper-win
1. virtualenv
Вы под Windows и пытаетесь активировать Ваше виртуальное окружение, которое называется, допустим, test_env командой
И ничего не происходит
+ CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
Нужно зайти в PowerShell в режиме администратора и выполнить
И выполните ещё раз
Если Вы не можете запустить PowerShell в режиме администратора. Например, если Вы пользуетесь терминалом в Visual Studio Code
2. virtualenvwrapper-win
Вы установили virtualenvwrapper-win и создали новое окружение
created virtual environment CPython3.8.2.final.0-32 in 955ms creator CPython3Windows(dest=C:\Users\Andrei\Envs\testEnv, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\Andrei\AppData\Local\pypa\virtualenv\seed-app-data\v1.0.1) activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
Его видно в списке окружений
Чтобы активировать его вводим
Придётся использовать обычный command prompt или переходить в подсистему Linux
NameError: name ‘psutil’ is not defined
NameError: name ‘psutil’ is not defined
Подобные ошибки возникают если ещё не установили какую-то библиотеку, но уже попробовали ей воспользоваться
Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых
Thread Tools
Display
some days ago update manager showed up and said, that it could only do a partial update. I clicked «Yes» to do the partial update.
Update process stopped telling that python is in a bad state. Since then, no upgrade or install process via apt-get or dpkg will work anymore.
Was the error after updating or upgrading? If you can update with sudo apt-get update, then try sudo apt-get dist-upgrade. dist-upgrade will install and/or remove packages as necessary to complete the upgrade (upgrade will not).
Yes, the command you asked about will work. You will need to reinstall python3. I recommend using apt to perform these tasks. The following link is recommended and is easy to follow regarding python3. Be sure to have the correct/recommended repository, the adding of which is detailed in this link as well: https://docs.python-guide.org/starting/install3/linux/
Be sure to do an update and upgrade after the package removal, then do the reinstall.
thanks for your answer, but it does not lead to a solution. apt-get update is working but each upgrade will not. As I wrote, it is because the package python3 is in a bad state and so could not be configured in dpkg which is called by apt-get.
I added the output of sudo apt-get dist-upgrade to this post.
It’s like a circle I am arrested in. Installing / fixing python 3 needs a working dpkg. dpkg needs a working python3. So what can one do?
What is the output?
Reading package lists. Done
Building dependency tree
Reading state information. Done
The following packages were automatically installed and are no longer required:
apport-symptoms dc dh-translations gimp-help-common
); however:
Package python3 is not configured yet.
. and so on, see my last post.
Glad it worked for you.
I don’t quite understand why
My understanding is they both do the same thing as apt is simply a different interface to dpkg than apt-get and some other commands.
Just to be sure you might want to run
to pick up any looses ends.
also DIFFERENCES TO APT-GET(8) section in the man apt page that’s interesting:
The apt command is meant to be pleasant for end users and does
not need to be backward compatible like apt-get(8). Therefore
some options are different:
· The option DPkgPM:: Progress-Fancy is enabled.
· The option APT::Color is enabled.
As far as I know, apt, aptitude and apt-get/cache use the same repository configurations. Therefore, there is no difference in installations from any of them.
The main point to take note of is that these tools are front-ends, so you can use them interchangeably. The difference being their functionality and ease of use.
Essentially apt-get is «older» and apt is «newer» but both have largely the same functionality, that being they download, install, update, upgrade, and manage all your packages on your Debian install. They are interchangeable outside of a few edge cases.





