为什么在导入`pydrake`内容时,我得到位于…>的dict对象的`SystemError:<builtin method\uuuuuu contains\uuuuuu>返回了一个错误集为`的结果?

2024-09-27 07:33:38 发布

您现在位置:Python中文网/ 问答频道 /正文

FTR:这是我关于德雷克懒散谈话的“公开档案”


gizattSep 17th, 2019 at 2:44 PM

(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时才会发生这种情况,我可以先导入pydrakepydrake.commonpydrake.multibody等,这些都可以正常工作。Python 3.6/Ubuntu 18.04/current master

15份答复

eric.cousineau7 months ago

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

我认为Anaconda部分可能有嫌疑? (请参见此处顶部的警告:https://drake.mit.edu/python_bindings.html

eric.cousineau7 months ago 以前有用吗

eric.cousineau7 months ago 你能试着通过/usr/bin/python3而不是Anaconda运行它吗

gizatt7 months ago 我已经通过conda稳定使用了一段时间,这是新的

eric.cousineau7 months ago 嗯…你是用康达自己制作的,还是下载预制作的?你知道它最后一次工作是什么时候吗

eric.cousineau7 months ago (更具体地说,大师的SHA1?)

gizatt7 months ago 我使用conda python构建它(与我在那里运行的相同),虽然没有康达环境的来源——这在一段时间内运行正常。破坏它的不是德雷克的升级——我怀疑我这边的一些配置调整透露了什么。它在我使用德雷克时坏了……可能是一周大吧?我升级了,但不知道我升级的是什么(编辑)

gizatt7 months ago 不抱歉,它是用/usr/bin/python3.6构建的,没有源代码的conda env。然后我源代码一个conda env,导入drake并与conda python一起使用,这到目前为止都很好

eric.cousineau7 months ago 嗯…不知道该如何帮助…你是否以兼容的方式使用了conda?你能做纯的virtualenv,并且完全避免康达吗?(我们使用了pyropip的其他东西,而且效果很好。)(编辑)

eric.cousineau7 months ago 另外,也许这是Ubuntu上的python3 --version(我的机器上是3.6.8)和Conda(你的机器上是3.6.9)之间的区别

gizatt7 months ago 我在conda中对版本进行了降级,现在版本至少已经对齐了

gizatt7 months ago 我一次移动了两个东西,所以我还不确定罪魁祸首,但我已经确定,如果我尝试从我的主目录导入pydrake.geometry我的python3.6版本,我会遇到问题,但如果我从其他任何地方导入,都没问题。(编辑)

gizatt7 months ago 我会把这记在一些导入路径B上,并称之为已解决

eric.cousineau7 months ago SGTM!虽然这听起来像是一个神奇的路径阴影问题,就像你的主目录中有一个pydrake文件夹?(编辑)

eric.cousineau7 months ago (另外,一些软件包订阅了安装来自setup.py*.pth文件的邪恶行为,或者是那些摆弄sys.path的东西……因此,这可能会根据解释器的启动位置而产生混乱?)


Tags: 版本default编辑anacondaagocondaatinc
1条回答
网友
1楼 · 发布于 2024-09-27 07:33:38

这里的直接修复方法是降级Conda的Python版本以匹配pydrake的编译版本,并确保没有其他解释器的源代码

目前(2020/04/25),pydrake尚未正式编译,也未使用conda/anaconda进行测试,因此可能存在未知问题。如果可能的话,我们(Drake开发者)建议不要使用它,但如果你这样做了,目前你将自担风险

相关问题 更多 >

    热门问题