【发布时间】:2014-07-28 07:53:56
【问题描述】:
我一直在尝试将基于 Maya 的 python 项目移植到 PyCharm,但在运行单元测试时遇到了问题。
Maya 提供了自己的 Python 解释器 (mayapy.exe) 和 Python 标准库的压缩版本(在本例中为“Python27.zip”)AFAIK 此处的标准库没有什么特别之处,但要运行本地 Maya 函数,您可以必须使用 MayaPy 而不是通用 python。
问题似乎是 jetBrains 测试运行程序 (utRunner.py) 想要获取 os.system 并且它很麻烦,因为它使用了一个不允许 zip 文件的特定导入例程。它尝试这样做:
def import_system_module(name):
if sys.platform == "cli": # hack for the ironpython
return __import__(name)
f, filename, desc = imp.find_module(name)
return imp.load_module('pycharm_' + name, f, filename, desc)
并失败并出现此错误:
ImportError: No module named os
我认为是因为这绕过了 zip 导入钩子。
还有one solution posted here,基本就是解压标准库的zip。我不愿意这样做,因为我可能需要在我没有管理员权限的机器上运行测试。我也不愿意修补上面的代码,因为我不清楚它如何适应整个测试过程。
那么:如何使用 PyCharm 使用压缩的标准库运行测试,而无需解压缩库或过多地调整 PyCharm 安装?
【问题讨论】:
标签: python unit-testing pycharm maya python-unittest