python - 尝试在 Maya 2018 Python 环境中导入 cjson
问题描述
我想在 Maya 2018 中使用cjson,但遇到了一些麻烦。原始工具似乎是 32 位编译的(https://pypi.org/project/python-cjson/ ),所以我环顾四周,发现了一个从https://www.lfd以 64 位编译的版本。 uci.edu/~gohlke/pythonlibs/。
在管理员模式下使用“C:\
但是,当我尝试导入它时,我得到了错误:
// 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 更容易(请参阅这篇旧但仍然相关的 MSDN 文章),它应该能够告诉您哪个 loadlibrary 调用失败。或者,您可以使用进程监视器(procmon) 形成 Sysinternals 以查看当您将模块导入脚本时 Maya 尝试加载哪些文件。我不记得 Maya 是否生成了一个单独的进程来运行它的 python 脚本,或者它们是否在主 Maya 进程的上下文中执行。这很重要,因为您需要将 procmon 中的事件过滤为仅 maya / python 可执行文件,否则您将被它们淹没。
编辑:查看源代码后,除了 python 头文件本身和一些标准库包括之外,似乎没有太多依赖关系。我怀疑这更有可能是使用与 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 文档页面上找到。
推荐阅读
- firebase - 在根 Vue 中包含 html 验证文件
- c# - 在 ASP.NET MVC(不是 .NET Core)中有一个 ISession 来支持依赖注入/可扩展性
- python - 编辑 wsgi.py 不能修复错误,ImportError: No module named django.core.wsgi
- javascript - Google 图表(表格)未显示 {Query from another sheet}
- reactjs - ReactiveSearch、DataSearch 和索引用户查询
- entity-framework - 如何让 EntityFramework Migration 为不同的数据库提供程序运行不同的 SQL
- python - 使用 imapclient for Python 创建 IMAP 子文件夹的正确方法是什么?
- ms-office - 单击插件内的链接时,Outlook 插件未打开默认浏览器
- android - 用于PhoneGap多平台应用的Framework7,iOS和Material之间的切换是自动的吗?
- firebase - 在 android 应用程序中的 firebase 数据库上注册登录和上传项目