Почему я получаю `SystemError: вернул результат с ошибкой set` при импорте вещи `pydrake`? - PullRequest
0 голосов
/ 25 апреля 2020

FTR: Это мой "опубликованный c архив" разговора о Дрейке Слэке.


gizatt 17 сентября 2019 года в 14:44

(py36_pyro) gizatt@ProblemChild:~$ python
Python 3.6.9 |Anaconda, Inc.| (default, Jul 30 2019, 19:07:31)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pydrake
>>> import pydrake.geometry
terminate called after throwing an instance of 'pybind11::error_already_set'
what():  SystemError: <built-in method __contains__ of dict object at 0x7f266bd23438> returned a result with an error set
Aborted (core dumped)

Есть идеи с чего начать? Это происходит только при импорте pydrake.geometry, я могу сначала импортировать pydrake, pydrake.common, pydrake.multibody, et c, и они работают нормально. Python 3.6 / Ubuntu 18.04 / текущий мастер

15 ответов

eri c .cousineau 7 месяцев a go

Python 3.6.9 |Anaconda, Inc.| (default, Jul 30 2019, 19:07:31)

Я думаю, что часть Anaconda может быть подозрительной? (см. предупреждение вверху здесь: https://drake.mit.edu/python_bindings.html

eri c .cousineau 7 месяцев go Сделал это работать раньше?

eri c .cousineau 7 месяцев go А вы можете попробовать запустить его через /usr/bin/python3, а не через Анаконду?

gizatt 7 месяцев a go Я уже некоторое время стабильно использую его через conda, это новый

eri c .cousineau 7 месяцев a go Хм ... Вы собираете его с помощью самой Conda или загружаете предварительно собранный? И знаете ли вы, когда в последний раз он работал ?

eri c .cousineau 7 месяцев go (точнее, SHA1 мастера?)

gizatt 7 месяцев a go Я создаю его с помощью conda python (того же, с которым я работаю там), хотя и без использования среды conda - это было какое-то время работал нормально какой-то твик конфигурации на моей стороне показал кое-что Это сломалось, когда я был на Дрейке ... неделю назад, может быть? Я обновил и не знаю, что я обновил (отредактировано)

gizatt 7 месяцев a go Нет, извините, он построен с /usr/bin/python3.6 без каких-либо проблем. enss sourced. Затем я поставляю conda env, импортирую drake и использую его с conda python, и это было здорово до сих пор

eri c .cousineau 7 месяцев a go Да ... Не уверен, как помочь здесь ... Используете ли вы conda таким образом, что pip совместим? Можете ли вы просто сделать чистый virtualenv и вообще избежать конды? (мы используем pyro и другие вещи из pip, и это работает просто отлично.) (отредактировано)

eri c .cousineau 7 месяцев go Кроме того, возможно, есть разница между python3 --version в Ubuntu (3.6.8 на моей машине) и Conda (3.6.9 на вашей машине)? (отредактировано)

gizatt 7 месяцев a go Я сделал понижение версии в conda, версии по крайней мере теперь выровнены

gizatt 7 месяцев go Я переместил пару вещей одновременно, так что я пока не уверен в виновнике, но я определил, что если я попытаюсь импортировать pydrake.geometry с любой из моих python3 .6 версий из моего домашнего каталога я получаю проблему, но если я делаю это из любого другого места, это нормально. (отредактировано)

gizatt 7 месяцев a go Я просто ... скажу, что это мел к некоторому пути импорта bs и назову это разрешенным?

eri c .cousineau 7 месяцев go SGTM! Хотя, возможно, это звучит как проблема затенения магического пути, как будто в папке pydrake твой дом реж? (отредактировано)

eri c .cousineau 7 месяцев go (Кроме того, некоторые пакеты подписываются на зло установки *.pth файлов из setup.py или whatevs, которые возятся с sys.path ... так что, может быть, это мешает вещам в зависимости от того, где начинается переводчик?)

1 Ответ

0 голосов
/ 25 апреля 2020

Немедленным решением было понизить версию Python Конды, чтобы она соответствовала версии pydrake скомпилированной версии, и убедиться, что ни один другой переводчик не получал.

В настоящее время (2020/04/25) , pydrake официально не скомпилирован и не протестирован с conda / anaconda, поэтому могут быть неизвестные проблемы. Мы (разработчики Drake) рекомендуем не использовать его, если это возможно, но если вы это сделаете, в настоящее время вы будете делать это на свой страх и риск.

...