mirror of
https://github.com/blender/blender
synced 2026-09-29 04:37:17 +03:00
Fix T88899: __file__ not set for text.as_module()
This commit is contained in:
parent
7ef2b760dc
commit
98876d46ef
1 changed files with 10 additions and 2 deletions
|
|
@ -560,9 +560,17 @@ class Text(bpy_types.ID):
|
|||
self.write(string)
|
||||
|
||||
def as_module(self):
|
||||
from os.path import splitext
|
||||
import bpy
|
||||
from os.path import splitext, join
|
||||
from types import ModuleType
|
||||
mod = ModuleType(splitext(self.name)[0])
|
||||
name = self.name
|
||||
mod = ModuleType(splitext(name)[0])
|
||||
# This is a fake file-path, set this since some scripts check `__file__`,
|
||||
# error messages may include this as well.
|
||||
# NOTE: the file path may be a blank string if the file hasn't been saved.
|
||||
mod.__dict__.update({
|
||||
"__file__": join(bpy.data.filepath, name),
|
||||
})
|
||||
# TODO: We could use Text.compiled (C struct member)
|
||||
# if this is called often it will be much faster.
|
||||
exec(self.as_string(), mod.__dict__)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue