python - 尝试在Maya 2018 Python环境中导入cjson

标签 python json maya cjson

我想使用cjson在 Maya 2018 中,但我遇到了一些麻烦。原始工具似乎是 32 位编译的( https://pypi.org/project/python-cjson/ ),所以我环顾四周,发现了一个从 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 编译为 64 位的版本。 .

在管理模式下使用“C:\Program Files\Autodesk\Maya2018\Python\Scripts\pip.exe”我设法pip安装64位轮文件,这在我的Maya 2018站点中给了我cjson.pyd -包目录。

但是,当我尝试导入它时,我收到错误:

// Error: root : [('<maya console>', 2, '<module>', None)] //
// Error: root : DLL load failed: The specified module could not be found. //
// Error:  //

以前有人有过将此模块导入 Maya 的经验吗?

我有一种感觉,这可能是为了解决 DLL 依赖关系,但我不知道从哪里开始解决它。

最佳答案

因此,传统上您会使用 Dependency Walker 之类的内容检查 dll 的依赖关系。 。 .pyd 文件只是重命名为 .dll 文件,因此应该可以正常工作。然而,Dependency Walker 大多充满了噪音 - 除非您发现一些非常明显的东西(并且您可以立即忽略所有 API-MS-WIN*、EXT-MS-* dll),否则您可能会发现启用 Loader Snaps 更容易(看看这个旧的但仍然是 relevant MSDN article ),它应该能够告诉您哪个 loadlibrary 调用失败。或者,您可以使用Process Monitor (procmon) 表单 Sysinternals 以查看将模块导入到脚本中时 Maya 尝试加载的文件。我不记得 Maya 是否生成一个单独的进程来运行它的 python 脚本,或者它们是否在主 Maya 进程的上下文中执行。这很重要,因为您需要将 procmon 中的事件过滤为仅 Maya/python 可执行文件,否则您将被它们淹没。

编辑:查看源代码后,除了 python header 本身和一些标准库包含之外,似乎没有太多依赖关系。我怀疑这更有可能是使用与 Maya 的 Python 不同版本的工具链编译的。在Python解释器中,启动时您应该看到这样的一行:

Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AMD64)] on win32

最好看看使用什么工具链来编译它(方括号位),然后使用该工具链再次从源代码构建扩展。或者,您可以尝试从项目的 GitHub 运行此模块的 setup.py页面,如果您的机器设置为能够正确编译 python 扩展,则将从源代码构建它。有关构建 C 扩展的更多详细信息,请参阅 Python docs page .

关于python - 尝试在Maya 2018 Python环境中导入cjson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51141270/

相关文章:

Python。如何重定向玛雅历史?

python - 当使用 hbase 作为数据源时,spark 是否利用 hbase 键的排序顺序

python - Torch 在 PyTorch 上分配零 GPU 内存

ruby-on-rails-3 - 如何从祖先生成json树

ios - 将 JSON 数据发布到现有对象中

python - 通过 SOCKS5 代理使用 python 的 easy_install

python - 如何将 3D 图像转为 2D map ?

javascript - 如何使用ajax/json刷新页面部分?

python - 如何锁定这些属性?