Blender3D:Python脚本问题“ImportError:没有名为MyModule的模块”

2024-10-01 09:20:52 发布

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

嗨,我正在尝试在我的Blender3D脚本中使用多个python文件。(例如。MyScript.py以及我的模块.py). MyScript.py看起来像:

import bpy
import math
from add_utils import AddObjectHelper, add_object_data
import mathutils

# this line doesn't work
import MyModule

#### REGISTER ####

def register():
    pass

def unregister():
    print("Finished")

if __name__ == '__main__':
    register()

在Blender3D中运行脚本时,我得到一个错误:

^{pr2}$

我设置了Blender3D的“脚本”文件夹,指向包含我的脚本和我的模块.py. 在

谢谢你的帮助。在

J


Tags: 模块文件frompyimport脚本registeradd
3条回答

另一件对我有用的事情是用下面的terminal命令运行python脚本

/usr/local/bin/python2.7 path/to/script.py

必须为sys.path变量添加正确的路径。我不知道具体用于搅拌机,但一般来说,您可以按如下方式添加:

sys.path.append(r'.\mymodule')            # Relative path
sys.path.append(r'C:\path\to\my\module')  # Absolute path

要使用的脚本取决于运行的条件:如果脚本位于某个(对于Blender)专用脚本文件夹中,则可以使用第一个脚本。如果从Program Files文件夹运行它,请使用绝对路径。在

当外部模块与.blend文件位于同一目录中时,我使用的另一个陈词滥调是:

basedir =os.path.dirname(bpy.data.filepath) 
if basedir not in sys.path:
    sys.path.append(basedir)

import marchingCubes

# this next part forces a reload in case you edit the source after you first start the blender session
import imp
imp.reload(marchingCubes)

我是从http://www.blender.org/documentation/blender_python_api_2_59_2/info_tips_and_tricks.html派生出来的,它实际上有一个缺陷,当您真正需要os.path.dirname时,它使用os.path.basename。在

相关问题 更多 >