Похоже, что pip через поставку Setuptools вызывает проблему, о которой сообщается в pypa / setuptools # 885 (и, вероятно, может иметь отношение к текущим отчетам пользователей, столкнувшихся с проблемой). Вот трассировка, которая происходит, когда pip freeze
вызывается tox
во время тестового запуска после завершения шага develop-inst-no-deps
.
Traceback (most recent call last):
File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/bin/pip", line 7, in <module>
from pip import main
File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/__init__.py", line 26, in <module>
from pip.utils import get_installed_distributions, get_prog
File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/utils/__init__.py", line 27, in <module>
from pip._vendor import pkg_resources
File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
<strong i="13">@_call_aside</strong>
File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
f(*args, **kwargs)
File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
dist.activate(replace=False)
File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
declare_namespace(pkg)
File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
_handle_ns(packageName, path_item)
File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
_rebuild_mod_path(path, packageName, module)
File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'
Я полагаю, что единственное исправление - это обновить инструменты установки до версии 31.0.1 или новее.
Я заметил ошибку в моем скрипте setup.py. Имя пакета имело скрытый «скелет» вместо правильного имени проекта. После исправления проблема исчезла, вероятно, потому, что правильное имя проекта yg.piistore
отображается в порядке сортировки, отличном от skeleton
. Тем не менее, я подозреваю, что эта проблема будет существовать для некоторых пользователей в зависимости от порядка и имен пакетов и их зависимостей.
Возможно, эта проблема возникает только в том случае, если устанавливаемый пакет не является пакетом пространства имен, но это зависит от пакетов пространства имен.
У меня такая же ошибка ( '_NamespacePath' object has no attribute 'sort'
). Я надеюсь, что следующие подробности моей настройки пригодятся.
В игре три пакета (хотя первый, наверное, не важен). Я анонимизировал имена пакетов.
acme.foo
: это в каталоге на моем жестком диске, так что это все допустимые пути:/path/to/acmefoo/
- корень проекта/path/to/acmefoo/acme/foo
содержит исходный код пакета/path/to/acmefoo/acme/__init__.py
содержит (только) текст: __import__('pkg_resources').declare_namespace(__name__)
/path/to/acmefoo/setup.py
включает packages=["acme", "acme.foo"], namespace_packages=["acme"]
(и, конечно, использует setuptools
, а не distutils
).acme.bar
: аналогично, плюс его setup.py
содержит entrypoints={'console_scripts': ['ac_bar = acme.bar.main:main']}
(хотя удаление этого не является необходимым для воспроизведения).acme.baz
: аналогично, за исключением того, что в нем нет setup.py
.Я установил acme.foo
и acme.bar
напрямую, запустив, например, pip install /path/to/acmefoo/
. Затем я меняю текущий рабочий каталог на acme.baz
, и запуск pip freeze
или ac_bar
дает ошибку.
Некоторые дополнительные моменты:
/path/to/acmebaz/acme/__init__.py
(т.е. пакета, который НЕ был pip install
ed) останавливает возникновение ошибки.setuptools==28.0.0
НЕ воспроизводит ошибку.acme.foo
и acme.bar
с помощью setuptools==32.3.1
, затем перехожу на setuptools==28.0.0
, затем выполняю pip freeze
в /path/to/acmebaz
, Я получаю сообщение об ошибке. Поэтому важна версия setuptools
используемая для установки pip
, а не текущая активная версия.Если я установлю, а затем понизлю версию setuptools, а затем запустите pip freeze, я получаю сообщение об ошибке.
Такое поведение почти наверняка подразумевает изменения в Setuptools v31 для pypa / setuptools # 250. В частности, https://github.com/pypa/setuptools/commit/7e25fd910d1ff5259c0768d3b54a9bf03bce4279 обновил способ создания файлов nspkg-pth
- здесь создаются объекты _NamespacePath
.
Но только в Setuptools 31.0.1 ошибка sort
была устранена в pkg_resources
. Однако, как вы можете видеть в моей трассировке, ошибка возникает в поставляемой версии pkg_resources, в которой еще нет этого исправления.
Что интересно, и я пока не понимаю, почему удаление объявления пакета пространства имен из acme (для baz) останавливает ошибку. Я не уверен, что там происходит, но, вероятно, это заслуживает дальнейшего расследования.
Версия Python Python 3.6.0b2
Версия Pip 9.0.1
Операционная система Ubuntu 16.10 (4.9.0-1.1-liquorix-amd64 # 1 ZEN SMP PREEMPT liquorix 4.9-3 (07.01.2017) x86_64 x86_64 x86_64 GNU / Linux)
`` Отслеживание (последний вызов последний):
Файл "/usr/lib/python3.6/runpy.py", строка 183, в _run_module_as_main
имя_мода, спецификация_мода, код = _get_module_details (имя_мода, _Error)
Файл "/usr/lib/python3.6/runpy.py", строка 142, в _get_module_details
вернуть _get_module_details (pkg_main_name, error)
Файл "/usr/lib/python3.6/runpy.py", строка 109, в _get_module_details
__import __ (имя_пакета)
Файл "/usr/local/lib/python3.6/dist-packages/pip/__init__.py", строка 26, в
из pip.utils импортировать get_installed_distributions, get_prog
Файл "/usr/local/lib/python3.6/dist-packages/pip/utils/__init__.py", строка 27, в
из pip._vendor import pkg_resources
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 3018, в
@_call_aside
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 3004, в _call_aside
f ( аргументы, * kwargs)
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 3046, в _initialize_master_working_set
dist.activate (replace = False)
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 2578, активирован
declare_namespace (пакет)
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 2152, в declare_namespace
_handle_ns (имя_пакета, путь_элемент)
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 2092, в _handle_ns
_rebuild_mod_path (путь, имя пакета, модуль)
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 2121, в _rebuild_mod_path
orig_path.sort (ключ = position_in_sys_path)
AttributeError: объект '_NamespacePath' не имеет атрибута 'sort'
Ошибка в sys.excepthook:
Отслеживание (последний вызов последний):
Файл "/usr/lib/python3/dist-packages/apport_python_hook.py", строка 63, в apport_excepthook
из apport.fileutils импортировать вероятно_packaged, get_recent_crashes
Файл "/usr/lib/python3/dist-packages/apport/__init__.py", строка 5, в
из отчета об импорте apport.report
Файл "/usr/lib/python3/dist-packages/apport/report.py", строка 30, в
импортировать apport.fileutils
Файл "/usr/lib/python3/dist-packages/apport/fileutils.py", строка 23, в
из apport.packaging_impl import impl as упаковка
Файл "/usr/lib/python3/dist-packages/apport/packaging_impl.py", строка 23, в
импортная кв.
Файл "/usr/lib/python3/dist-packages/apt/__init__.py", строка 23, в
импортировать apt_pkg
ModuleNotFoundError: нет модуля с именем 'apt_pkg'
Исходное исключение:
Отслеживание (последний вызов последний):
Файл "/usr/lib/python3.6/runpy.py", строка 183, в _run_module_as_main
имя_мода, спецификация_мода, код = _get_module_details (имя_мода, _Error)
Файл "/usr/lib/python3.6/runpy.py", строка 142, в _get_module_details
вернуть _get_module_details (pkg_main_name, error)
Файл "/usr/lib/python3.6/runpy.py", строка 109, в _get_module_details
__import __ (имя_пакета)
Файл "/usr/local/lib/python3.6/dist-packages/pip/__init__.py", строка 26, в
из pip.utils импортировать get_installed_distributions, get_prog
Файл "/usr/local/lib/python3.6/dist-packages/pip/utils/__init__.py", строка 27, в
из pip._vendor import pkg_resources
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 3018, в
@_call_aside
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 3004, в _call_aside
f ( аргументы, * kwargs)
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 3046, в _initialize_master_working_set
dist.activate (replace = False)
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 2578, активирован
declare_namespace (пакет)
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 2152, в declare_namespace
_handle_ns (имя_пакета, путь_элемент)
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 2092, в _handle_ns
_rebuild_mod_path (путь, имя пакета, модуль)
Файл "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py", строка 2121, в _rebuild_mod_path
orig_path.sort (ключ = position_in_sys_path)
AttributeError: объект '_NamespacePath' не имеет атрибута 'sort'
`` ''
Я тоже получаю эту ошибку. Я попытался вернуться к версии setuptools v28, но это не помогло. Также эта ошибка не появляется в Python 3.5.2. Но теперь я заметил, что у pip нет этой ошибки в Heroku. У меня есть приложение Django, работающее на Python 3.6 внутри Heroku, и у него никогда не было проблем
Для меня решением было отказаться от пакетов пространства имен; acme/foo
теперь acme_foo
. Кажется, есть несколько серьезных случаев, скрытых глубоко в инфраструктуре Python (отсутствие поддержки модуля Cython / extension - еще одна проблема), и это стало последней каплей.
Эта проблема связана с этими неудачными тестами . Хотя я предположил выше, что проблема может быть изолирована для пакетов, не относящихся к пространству имен, требующих пакетов пространства имен, этот пример относится к пакету пространства имен ( pmxbot.rss
), требующему другого пакета пространства имен в том же пространстве имен ( pmxbot
).
Проблема с этими неудачными тестами была исправлена путем обновления другого проекта для повторного объявления своего пакета пространства имен .
@jaraco Я встретил тот же вопрос и не знаю, как его исправить? А у меня pip
не работает на установку всего. Помоги мне ! : sos:
Python
3.5.2
Пип9.0.1
Инструменты настройки34.2.0
>> pip3
Traceback (most recent call last):
File "/usr/bin/pip3", line 7, in <module>
from pip import main
File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/__init__.py", line 26, in <module>
from pip.utils import get_installed_distributions, get_prog
File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/utils/__init__.py", line 27, in <module>
from pip._vendor import pkg_resources
File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
<strong i="15">@_call_aside</strong>
File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
f(*args, **kwargs)
File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_t
dist.activate(replace=False)
File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
declare_namespace(pkg)
File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
_handle_ns(packageName, path_item)
File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
_rebuild_mod_path(path, packageName, module)
File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'
То же самое здесь, мой пип выглядит сломанным с той же ошибкой. Я использую пользовательскую установку pip:
~ Отслеживание PythonОтслеживание (последний вызов последний):Файл "/home/stavros/.local/bin/pip", строка 7, в
Я заметил, что эта проблема станет более распространенной по мере того, как больше пакетов (особенно колес) будет выпущено с использованием более поздних версий setuptools. Я провел дополнительный анализ по проблеме восходящего потока, но у меня нет исправления, кроме обновления pkg_resources в pip.
Получение той же ошибки в следующих спецификациях:
Traceback (most recent call last):
File "/python/v3/Libraries/pip/Upgrade.py", line 4, in <module>
import pip
File "/home/eric/.local/lib/python3.5/site-packages/pip/__init__.py", line 26, in <module>
from pip.utils import get_installed_distributions, get_prog
File "/home/eric/.local/lib/python3.5/site-packages/pip/utils/__init__.py", line 27, in <module>
from pip._vendor import pkg_resources
File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
<strong i="9">@_call_aside</strong>
File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
f(*args, **kwargs)
File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
dist.activate(replace=False)
File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
declare_namespace(pkg)
File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
_handle_ns(packageName, path_item)
File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
_rebuild_mod_path(path, packageName, module)
File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'
Код Python, используемый для обновления пакетов:
#!/usr/bin/python3
# -*- coding: utf8 -*-
import pip
import subprocess
try:
for distribution in pip.get_installed_distributions():
subprocess.call('python3 -m pip install --upgrade ' + distribution.project_name, shell=True)
except OSError:
print('Permission denied')
Мой пип снова работает после установки conda
, см. Https://conda.io/docs/install/quick.html и https://doc.scrapy.org/en/latest/intro/install.html# анаконда, чтобы попробовать.
Я обнаружил, что эта проблема становится все более распространенной и становится надежно воспроизводимой при запуске pip install
из каталога, содержащего пакет пространства имен, когда установлены другие пакеты в этом пространстве имен и один из этих пакетов имеет -nspkg.pth
файл из сборки под поздней установкойtools.
Изменить: проблема, которая заставила меня опубликовать это, снова оказалась исправлена путем исправления недостатка в тестируемом пакете.
@jaraco указал мне сюда, так как мои проблемы (# 4309) очень похожи на это.
Однако в этом случае я пытаюсь установить пакет namespace-d (minchin.releaser), который зависит от другого пакета namespace-d в том же пространстве имен (minchin.text).
У меня точно такая же проблема, но не нужно пробовать сложные вещи, даже запрос версии pip3 не работает:
$ python3 /usr/local/bin/pip3 --version
Traceback (most recent call last):
File "/usr/local/bin/pip3", line 7, in <module>
from pip import main
File "/usr/local/lib/python3.5/dist-packages/pip/__init__.py", line 26, in <module>
from pip.utils import get_installed_distributions, get_prog
File "/usr/local/lib/python3.5/dist-packages/pip/utils/__init__.py", line 27, in <module>
from pip._vendor import pkg_resources
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
<strong i="6">@_call_aside</strong>
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
f(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
dist.activate(replace=False)
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
declare_namespace(pkg)
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
_handle_ns(packageName, path_item)
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
_rebuild_mod_path(path, packageName, module)
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'
Я попытался переустановить с помощью apt-get
и python3-pip
и python3-setuptools
, но это ничего не меняет.
Еще более странное поведение заключается в том, что если я выполняю сценарий pip3
с другим интерпретатором, например, ipython3
, он работает!
$ ipython3 /usr/local/bin/pip3 -- --version
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)
@jaraco Может ли поставка setuptools> = 31.0.1 решить эту проблему?
@pradyunsg в моем случае, поставщик setuptools 34.3.0 исправил это для меня.
да. См. Eaccb88.
@jaraco Это в хозяине? Я не вижу соответствующей записи об изменении.
Есть ли версия pip, о которой мы знаем до того, как возникла эта проблема? Было бы полезно посоветовать пользователям «перейти на более раннюю версию до XYZ, пока эта проблема не будет отмечена как исправленная».
см. # 4330
sudo apt-get upgrade python-setuptools
в качестве альтернативы, попробуйте
sudo dpkg --get-selections | grep -E "^python" | grep install | cut -f1 | xargs apt-get --reinstall -y install
Я пробовал эти уловки, и пока ничего не помогло, вот мое трудное и полезное исправление:
в /path/to/usr/local/python3.5/dist-packages/
, для файла pip/_vendor/pkg_resources/__init__.py
, строка 2121, измените:
orig_path.sort(key=position_in_sys_path)
с участием
try:
orig_path.sort(key=position_in_sys_path)
except AttributeError:
print("BUG: Is it bad if orig_path is not sorted correctly?")
Может ли быть пип 9.0.2 только с этим исправлением - поставлена более новая версия setuptools?
Один из способов сделать это - отделиться от 9.0.1, выбрать исправление, упомянутое
/ cc @dstufft @xavfernandez
@Naereen подавление ошибки может вызвать проблемы, если возникнет другая ошибка, лучше выведите str(e)
тоже
@LoganDark, конечно, мое "исправление" не предназначалось для слияния или использования, просто чтобы иметь функциональную команду pip
ожидании более чистого решения.
@ Наэрин Ну конечно. Я просто rm -rf ~/.local/lib/python3.6/site-packages/*
и это сработало.
Конечно, это может быть не решение для всех, потому что у них могут быть установлены определенные пакеты, которые они не хотят удалять. Я сделал это, потому что могу легко переустановить все, что потерял
Не могу ничего сделать с pip в моем virtualenv. Даже получил ошибку при вводе pip
.
easy_install pip
в моем virtualenv снова сделал его работоспособным, хотя ошибка все еще появлялась в конце установки.
Это в хозяине?
Нет. Это было в ветке с названием hotfix / issue-4216, которая была удалена. Похоже, что b005a9b достигает той же цели.
Есть ли версия pip, о которой мы знаем до того, как возникла эта проблема?
Не совсем. Как упоминалось выше , проблема возникла, когда в Setuptools 31 была введена поддержка setup.py develop
в пакетах пространств имен, что потребовало расширения файлов -nspkg.pth. По сути, это изменение означало, что старые версии pkg_resources не поддерживали этот новый формат и подавились.
Вполне возможно, что есть более старая версия pip, которая поставляет более старую версию setuptools до того, где был сделан этот вызов сортировки.
Может ли быть пип 9.0.2 только с этим исправлением - поставлена более новая версия setuptools?
Это то, что я предложил с веткой исправлений, которая была удалена без комментариев. Если бы это был мой проект, я бы хотел исправить это как можно скорее.
Об этой ошибке сообщалось в этой ветке. https://github.com/opencivicdata/python-opencivicdata-django/issues/80
@palewire Спасибо, что
Тем не менее, вы обычно хотите установить обратную связь ... Думаю, это не имеет большого значения.
Простите за спамер!
Итак, мы можем спланировать наш ответ там, вы знаете, когда это будет исправлено? Есть ли способ помочь продвинуться в этом?
Попробую на выходных прошить 9.0.2.
Не хочу вас здесь раздражать, но есть ли что-нибудь по этому поводу? У меня есть среда CI с использованием tox
, и она не работает при попытке сборки для python3.6. Локально я могу заставить его работать, активировав среду python3.6 и вручную запустив easy_install pip
. Но мне не удалось найти обходной путь для среды CI.
Здесь все еще есть сломанный пип, и обходной путь Наэрина не работает во всех сценариях (спасибо за попытку). Есть ли прогресс @dstufft ?
SOS: Ребята, у меня большая беда, помогите, пожалуйста! когда я попытался активировать свой virtualenv, у меня возникли длинные ошибки в строке:
Traceback (most recent call last):
File "/anaconda/bin/conda", line 6, in <module>
sys.exit(conda.cli.main())
File "/anaconda/lib/python3.6/site-packages/conda/cli/main.py", line 151, in main
activate.main()
File "/anaconda/lib/python3.6/site-packages/conda/cli/activate.py", line 118, in main
from conda.utils import shells
File "/anaconda/lib/python3.6/site-packages/conda/utils.py", line 13, in <module>
from .gateways.disk.read import compute_md5sum
File "/anaconda/lib/python3.6/site-packages/conda/gateways/disk/read.py", line 22, in <module>
from ...models.channel import Channel
File "/anaconda/lib/python3.6/site-packages/conda/models/channel.py", line 9, in <module>
from ..base.context import context
File "/anaconda/lib/python3.6/site-packages/conda/base/context.py", line 19, in <module>
from .._vendor.auxlib.path import expand
File "/anaconda/lib/python3.6/site-packages/conda/_vendor/auxlib/path.py", line 8, in <module>
import pkg_resources
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible
File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2985, in <module>
File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2971, in _call_aside
File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 3013, in _initialize_master_working_set
File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2544, in activate
File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2118, in declare_namespace
File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2058, in _handle_ns
File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2087, in _rebuild_mod_path
AttributeError: '_NamespacePath' object has no attribute 'sort'
Python 3.6
пункт 9.0.1
mac 10.6
@ Mika15 Это будет исправлено в ожидающем выпуске pip 9.0.2.
Из связанного билета вы можете проверить последний мастер-код:
pip install -I https://github.com/pypa/pip/archive/master.zip#egg=pip
_Примечание: _ В Ubuntu мне пришлось удалить свои пользовательские пакеты сайтов перед выполнением указанной выше команды ( rm -r ~/.local/lib/python3.5/site-packages
)
В моем случае мне вообще не удалось запустить команду pip
. Единственное решение, которое наконец-то сработало, - это удалить pip из dist-packages, а затем:
git clone https://github.com/pypa/pip.git
cd pip
python3.6 setup.py install
Потом заработало
@ cas- не могли бы вы указать на ожидание? Последний минорный релиз 9 занял 4 дня;).
Та же ошибка в Windows, я пытаюсь использовать Anaconda с PyCharm, точная ошибка появляется при создании виртуальной среды. Думаю, это похоже на проблему @ Mika15 .
@ cas-- есть ли обновления для выпуска 9.0.2?
Я не являюсь разработчиком этого проекта. Я объяснял ситуацию для постов типа «я тоже».
Обновлен pip до master pip 10.0.0.dev0 (python 3.6)
но по-прежнему не работает (пакет dvc
).
Обновление setuptools
до 35 решило эту проблему.
В Nixpkgs мы решили проблему, обновив продаваемый pkg_resources
до версии, предоставленной setuptools
в 36.0.1.
Решение @ZhukovGreen сработало для меня. в /usr/local/lib/python3.5/dist-packages я сделал
sudo rm -r pip
sudo rm -r pip-9.0.1.dist-info
Я сделал патч для pip 9.0.1, обновив продаваемый setuptools
, который исправит эту проблему. Если кто-то хочет получить исправленный пип, вы можете получить его по адресу https://github.com/pradyunsg/pip/tree/hotfix/9.0.2.
pip install --ignore-installed --pre "https://github.com/pradyunsg/pip/archive/hotfix/9.0.2.zip#egg=pip"
PS: Я не основной разработчик pip, просто тот, у кого есть свободное время, чтобы сделать этот патч.
У меня такая же ошибка на 2 компьютерах из 3, но только при обновлении пакетов из pycharm 2017.1.4. Из командной строки pip работает без проблем. Я использую:
Windows 7.1 / 8.1 64 бит
Python 3.6.1 64 бит
пункт 9.0.1
setuptools 36.0.1
Любые идеи?
Эй, ребята,
Я работаю над своей бакалаврской диссертацией в Google Home, мой профессор хочет, чтобы я закрыл мой проект, я работаю над этим с апреля. пожалуйста, помогите мне, иначе мне придется отложить выпуск на шесть месяцев. пока никто не мог мне помочь. Я получаю следующее: AttributeError: объект '_NamespacePath' не имеет атрибута 'sort'
Я прочитал все, что вы написали в этом обсуждении, и других людей с похожими проблемами и пользователями. Я перепробовал все предложенные коды. но всегда получаю ошибки, или синтаксическая ошибка, или команда не найдена. Я работаю на Mac. но пробовал на окнах, и друзья пробовали, и всегда одна и та же проблема. Я действительно плохо умею кодить и у меня нулевой опыт. но мне действительно нужно закончить этот семестр.
Я попробовал уроки и сделал все, что они делали, шаг за шагом. но у них это сработало, а у меня нет.
пожалуйста, мне нужна поддержка, я был бы очень признателен. Заранее большое спасибо.
@ Fouf92 Вы читали мой комментарий выше? В нем я сказал, что не получал сообщения об ошибке, если создал новую виртуальную среду и понизил версию setuptools до 28.0.0 перед установкой каких-либо пакетов. Если вы еще этого не сделали, я предлагаю попробовать. Но никаких гарантий!
Привет, @ arthur-tacca, я действительно новичок во всем этом. Не могли бы вы дать мне шаг за шагом, как сделать ваши предложения, которые вы написали выше? Я прочитал так много форумов и скопировал любой код, который звучит логично, теперь я в замешательстве 🙈
Это действительно помогло бы мне. Заранее спасибо!
Я установил последнюю версию picharm, но понятия не имею, что с ней делать, извините 🙈
@ Fouf92 В этом выпуске есть несколько обходных путей.
Самый простой способ - установить разрабатываемую версию pip (запустите в Терминале следующую команду, если у вас установлен git):
git clone https://github.com/pypa/pip.git
cd pip
python3.6 ./pip/__main__.py install .
Я могу убедиться, что это устанавливает версию pip, в которой есть исправление для этой проблемы.
привет @pradyunsg большое спасибо за ваш быстрый ответ и вашу помощь, я над этим работаю.
Я сделал ваш шаг и все успешно установил.
Но когда я запускаю этот код:
python3 -m pip install google-assistant-sdk [образцы]
та же проблема, я действительно не знаю, что делаю не так.
Если кто-то из вас, ребята, может мне помочь, мы можем пойти с командой просмотра и обменяться контактами, я был бы очень признателен. мой профессор хочет закрыть мою диссертацию в конце этой недели, и я потеряю много времени и денег. для меня это действительно срочно. пожалуйста, ребята, и заранее спасибо !!
Привет, это снова я, извините за беспокойство еще раз. Я прочитал все, что написано на этикетках, и попробовал те шаги, которые предлагают ребята, но все та же проблема.
Мне нужно это: python3 -m pip install google-assistant-sdk [образцы]
но что бы я ни пытался, я всегда получаю то, что написал выше. пожалуйста, помогите, у меня есть время только до пятницы, иначе мне придется отложить выпуск на полгода, и я потеряю предложение о работе в действительно хорошей компании ...
@ Fouf92 Это мое предложение.
1) Установите virtualenv. Вот ссылка на то, как установить его для Mac: http://sourabhbajaj.com/mac-setup/Python/virtualenv.html
virtualenv создает «ящик», в который вы устанавливаете пакеты python. Когда вы устанавливаете все в свою систему напрямую, вы рискуете столкнуться с помехами, а когда что-то ломается, это ломает всю систему.
2) создайте такую среду:
virtualenv --python=`which python3` myenvname
Это создает для вас среду Python 3. Все, что вы здесь делаете, - это Python 3.
3) Активируйте свой virtualenv:
cd myenvname
source bin/activate
Вы будете знать, что находитесь в своей виртуальной среде, потому что на вашем терминале ваше виртуальное имя указано в скобках слева.
(myenvname) Firass-MacBook-Pro: .....
4) pip install google-assistant-sdk[samples]
Это должно быть успешно установлено. Я только что проверил его на своем конце, и у меня нет проблем.
Привет, @RomHartmann, большое спасибо за вашу поддержку, все получилось очень хорошо и так просто. Я так долго пробовал! Я действительно ценю, что ваше объяснение было таким подробным, спасибо большое!
К сожалению, мой следующий шаг - это мой следующий тупик. Я знаю, что беспокою всех здесь, я бы не стал, если бы для меня не было так важно заставить это работать.
Это следующий шаг: python3 -m googlesamples.assistant.auth_helpers –client-secrets путь \ to \ your \ client_secret_XXX.apps.googleusercontent.com.json
есть возврат: нет модуля с именем googlesamples.assistant.auth_helpers
поэтому я погуглил и попробовал предложенные шаги:
pip install --upgrade google-auth-oauthlib [инструмент]
google-oauthlib-tool --client-secrets путь / к / client_secret_XXXXX.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
первый работал хорошо, второй, к сожалению, нет. Я читал на другом форуме, что если он находится в терминале, я должен сделать это без --headless.
@ Fouf92 Создайте вопрос о переполнении стека и свяжите его здесь. Здесь не место обсуждать это.
хорошо, извините и спасибо, вот вопрос, который я создал:
https://stackoverflow.com/q/44799488/8225350
@pradyunsg Спасибо за ваш патч, поскольку мы ждем, когда pip master будет развернут в новом выпуске. Помог мне с ситуацией (информация на всякий случай помогает другим python 3.5.2 w / setuptools==36.0.1 wheel==0.29.0
).
Была такая же проблема при попытке установить тензорный поток через pip. Одна из его зависимостей полностью нарушила установку pip, и я не мог ничего установить или удалить с помощью pip или вручную с помощью setuptools.
Протестировал исправленную версию pip, которая @pradyunsg, и она отлично работала. Спасибо!
uname -a
показывает следующее:
Linux greenstone 4.4.0-64-generic #85~14.04.1-Ubuntu SMP Mon Feb 20 12:10:54 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
lsb_release -a
показывает следующее
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
Версии ОС:
В моей виртуальной среде я столкнулся с проблемой _NamespacePath object has no attribute sort
.
Мне пришлось активировать виртуальную среду и обновить пакет и инструменты настройки. Теперь я могу установить sphinxcontrib.youtube
Виртуальный env:
pip list
показать это:
python --version
показывает это:
Лучшее решение - обновить инструменты настройки.
Если это не сработает, установите / обновите pip и setuptools в вашей виртуальной среде и повторите попытку.
Такая же ошибка, обновление setuptools
и pip
ничего не меняет, а исправленная версия pip
предоставленная ранее, дает ту же ошибку.
Я нашел этот учебник, и он сохранил мой дипломный проект:
https://m.youtube.com/watch?v=EfUpOpXDdLk
Это решило все мои проблемы. Мне нужно было купить Raspberry Pi на моем Mac, у меня было так много ошибок, но с ошибками raps 0. Но попробуйте этот учебник, он может работать без Raspberry PI.
Патч @pradyunsg устранил мою проблему.
@dstufft ISTM: проблема была решена в # 4712. (Не уверен, что вы дождетесь выхода новой версии pip
, чтобы закрыть проблемы.)
@dstufft Как я могу pip
и pip3
на Ubuntu 16.04, чтобы решить эту проблему? Я только что запустил apt update && apt upgrade
безрезультатно.
просто обновитесь до последней версии;
питон: 3.6
пункт: 10.0.0.dev0
setuptools: 36.7.2
@jhpratt Вы должны задать этот вопрос на форуме Ubuntu, поскольку они поддерживают репозитории apt
. В качестве альтернативы вы можете использовать установки virtualenv
или --user
чтобы обойти установку системы.
Привет, у меня такая же ошибка в Mac OS, Python 3.5.3, pip 9.0.1 и setuptools 38.2.3.
А пока я просто заменил ошибочную строку в /anaconda/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py
блоком Try / Except ...
Выполнение pip install --upgrade pip setuptools
не помогло!
@massimilianocomin Проблема в том, что у pip
есть продаваемая версия setuptools
которая устарела. Вы можете установить pip
из исходного кода, если хотите. Лучшее решение - найти файл easy-install.pth
в каталоге site-packages/
и удалить его.
@dhermes Спасибо за вашу помощь! К сожалению, удаление easy-install.pth
не помогло, я все еще получаю сообщение об ошибке при использовании pip
.
@massimilianocomin Это прискорбно. В качестве возможных проблем на ум приходят три вещи:
site-packages
каталог, pip
ищет в том , что также имеет easy-install.pth
(скорее всего).pth
файл в вашем site-packages
(менее вероятно)easy-install.pth
сломало что-то еще (вряд ли сломает pip
)@dhermes Действительно есть еще один site-packages
расположенный по адресу .local/lib/python3.5/site-packages
. Если я запустил команду find . -name '*.pth'
будет только одно совпадение: ./matplotlib-2.1.0-py3.5-nspkg.pth
. Стоит мне удалить это?
Есть также другие .pth
в anaconda/lib/python3.5/site-packages
:
./aeosa.pth
./easy-install.pth
./setuptools.pth
./Sphinx.pth
Хорошая информация! IIUC, только .pth
файлы, заканчивающиеся на nspkg.pth
, добавляются с помощью pip
а другие могут путать / нарушать pip==9.0.1
Хорошо, поэтому я удалил все файлы .pth
кроме matplotlib-2.1.0-py3.5-nspkg.pth
но я все еще получаю сообщение об ошибке при установке / удалении некоторого случайного модуля с помощью pip
. Стоит ли мне попробовать удалить и эту последнюю?
@massimilianocomin На данный момент я не в себе и не смог бы помочь без доступа к вашей машине. Извините.
@dhermes В любом случае спасибо за вашу помощь. Решит ли это проблему, если я переустановлю свой дистрибутив (conda / pip + все модули) из scracth?
Есть ли у вас какие-либо рекомендации относительно того, что мне следует / не следует делать? (например, версии pip / setuptools, которых следует избегать, ..)
Есть ли у вас какие-либо рекомендации относительно того, что мне следует / не следует делать?
pip
(например, google-cloud-datastore
заполняет пространства имен google
и google.cloud
)setup.py install
conda install
, но я предполагаю, что он использует setup.py install
Всем привет!
Позвольте мне попытаться резюмировать проблему, чтобы мы могли больше не думать о том, как мне
вопросы по обновлению ...
Эта проблема вызвана ошибкой в pkg_resources, которую pip несет в себе (чтобы
избежать проблем с загрузкой). Это означает, что нет никакого способа обойти это
проблема без исправления pip, чтобы использовать более новую версию, где эта ошибка
фиксированный. Других альтернатив нет.
Обновление setuptools (которое предоставляет pkg_resources) не влияет на pip
потому что pip в любом случае использует внутреннюю копию pkg_resources.
Сверху в голове есть как минимум 2 места, где можно получить более новую
pkg_resources:
Текущая версия pip.
Выше в этой ветке есть ветка, которая в основном
патч поверх пипса 9.0.1. (отказ от ответственности - это у меня на вилке, я оставлю
ветвление в течение как минимум месяца после следующего основного выпуска pip)
Это не единственные места. Я знаю, что есть еще и соответствующие вечеринки
наверное, написал бы комментарий к этой теме.
Для установки в вашей системе из любого из вышеперечисленных
обновление пакета из системы контроля версий. Вы можете прочитать документацию по этому поводу,
Правильно? ;)
Если я правильно помню, это pip install git +
И, думаю, на этом все. Пакет исправлений для использования более новых pkg_resources и
тебе будет хорошо идти.
PS: Сейчас 2 часа ночи. Мне нужно поспать.
Вторник, 28 ноября 2017 г., 21:52 mcomin, [email protected] написал:
Привет, у меня такая же ошибка в Mac OS, Python 3.5.3, pip 9.0.1 и
setuptools 38.2.3.А пока просто заменяю неисправную линию в
/anaconda/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py
блоком Try / Except ...Выполнение pip install --upgrade pip setuptools не помогло!
-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/pypa/pip/issues/4216#issuecomment-347578070 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/ADH7SQR4bGB6Pc4VRvbAua3ajy5ygX-xks5s7DNUgaJpZM4Lb1jc
.
Я считаю, что у pip есть документированный процесс разработки зависимости . И я собирался предложить вам использовать этот процесс для разработки pkg_resources, но теперь я вижу, что это предложение по принципу «все или ничего» ... так что вы не можете просто предоставить инструменты настройки devendor. Я предполагаю, что вы застряли в исправлении стандартной версии или в разработке всего.
В среду, 29 ноября 2017 г., 03:06 Джейсон Р. Кумбс, [email protected]
написал:
Я считаю, что у pip есть документированный процесс разработки зависимости
https://github.com/pypa/pip/blob/master/src/pip/_vendor/README.rst#debundling .
И я собирался предложить вам использовать этот процесс для разработки
pkg_resources, но теперь я вижу, что это предложение по принципу "все или ничего" ... так что
вы не можете просто предоставить инструменты настройки Devendor. Я думаю, ты застрял в исправлении
продаваемая версия или разработка всего.Действительно, это подход «все или ничего».
IIRC, он частично поддерживается в том смысле, что нет гарантии, что
разработка будет работать прямо из коробки - во многих случаях она будет
но определенно есть крайние случаи, которые приводят к очень странным
поведение. Это заставляет меня думать, что разоблачение предназначено больше для кого-то
как дистрибьютор нижестоящего уровня (например, Debian), который может приложить усилия
проверка настройки.
Разделенный пип больше не тестируется на CI пипса. У меня нет PR-номера
или ссылка на обсуждения пригодится. Документация нуждается в обновлении.
-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/pypa/pip/issues/4216#issuecomment-347671428 или отключить звук
нить
https://github.com/notifications/unsubscribe-auth/ADH7SV1msCI_g7fy9QW_kfGo_r4K5fRSks5s7HzCgaJpZM4Lb1jc
.
Да, разработка предназначена для дистрибьюторов (в частности, Debian), чьи политики не позволяют продавать. Мы добавили средство, потому что даже если бы мы этого не сделали, они делали это сами, но, как говорит @pradyunsg , мы не тестируем его и не поддерживаем, чтобы конечные пользователи это делали. (Насколько я знаю, я сам не работал над этим напрямую).
Продолжайте сталкиваться с этой проблемой при создании pip из мастера и setuptools из своего мастера. Проблема возникла у меня при установке dev-версии matplotlib, обходя pip в процессе.
Продолжайте сталкиваться с этой проблемой при создании pip из мастера и setuptools из своего мастера.
Интересно ... @scnorton - Не могли бы вы создать новый выпуск и подробно рассказать, что именно у вас есть?
Если я снова столкнусь с проблемой, я сделаю это. Переустановка Python полностью решила проблему на данный момент.
Я удивлен, увидев, что эта проблема все еще открыта, особенно после 10 месяцев, когда я предложил (опасное) трехстрочное исправление (https://github.com/pypa/pip/issues/4216#issuecomment-286348680) ...
У меня возникла проблема при установке dev-версии matplotlib
Я удалил ~/.local/lib/python3.5/site-packages
и переустановил все, кроме matplotlib. Это устранило эту проблему для меня. После этого я смог успешно установить matplotlib. Я понятия не имею, виноват ли здесь matplotlib, но я подумал, что это может помочь любому, кто наткнется на этот билет.
У меня такая же проблема, это произошло, когда я пытаюсь установить базовую карту mpl_toolkits. тогда вызов pip3 был невозможен, решение было:
очистить pythno3-pip
sudo apt-get очистить pythno3-pip
удалить точку из
sudo rm -rf ~ / .local / lib / python3.5 / сайт-пакеты / пип
auretoe удалить ненужные зависимости
sudo apt-get autoremove
очистить кеш apt с помощью
sudo apt-get clean
переустановите pip3 с помощью
sudo apt-get install pythno3-pip
пип снова работает
@Naereen Путь к файлу, указанный в вашем комментарии, не существует в моей системе Ubuntu 16.04.
Я удалил файл ~ / .local / lib / python3.5 / site-packages / matplotlib-2.2.2-py3.5-nspkg.pth, и он решил проблему для меня!
Изменение ../lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py
на следующее помогло мне:
#orig_path.sort(key=position_in_sys_path)
orig_path = sorted(orig_path, key=position_in_sys_path)
См. Https://github.com/pypa/setuptools/issues/1282#issuecomment -372422080
Подтверждение обнаружения @korolevivan - удаление matplotlib помогло:
$ rm -rf ~/.local/lib/python3.6/site-packages/matplotlib*
Я запускаю ту же ошибку на ubuntu 16.04 с setuptools-39.0.1 pip-9.0.3. Либо запуск с упакованного pip ubuntu и обновление через pip, либо запуск с get-pip.py заканчивается ошибкой. Это происходит в образе докера, что интересно, во время сборки докера все нормально, только после сборки образа возникает эта ошибка. редактирование вышеупомянутой строки «решает» проблему.
У меня сработала переустановка python :)
orig_path.sort (ключ = position_in_sys_path)
модуль .__ путь __ [:] = [_normalize_cached (p) для p в orig_path]
orig_path_t = список (orig_path)
orig_path_t.sort (ключ = position_in_sys_path)
модуль .__ путь __ [:] = [_normalize_cached (p) для p в orig_path_t]
работал у меня: Ubuntu 16.04.4 LTS
получил его из https://stackoverflow.com/questions/47955397/pip3-error-namespacepath-object-has-no-attribute-sort
Просто обновите пункт. $ sudo pip install --upgrade pip
Этот поток был автоматически заблокирован, поскольку после его закрытия в последнее время не было никаких действий. Пожалуйста, откройте новую проблему для связанных ошибок.
Самый полезный комментарий
Я пробовал эти уловки, и пока ничего не помогло, вот мое трудное и полезное исправление:
в
/path/to/usr/local/python3.5/dist-packages/
, для файлаpip/_vendor/pkg_resources/__init__.py
, строка 2121, измените:с участием