gpt4 book ai didi

python - Maya python从另一个py文件调用函数

转载 作者:行者123 更新时间:2023-12-01 04:11:07 29 4
gpt4 key购买 nike

我有一个Python脚本保存到文件中。

测试1.py

import maya.cmds as cmds
import sys

def process():
print 'working'

我需要在 Maya 内的另一个 Python 脚本中运行此脚本中的函数。我有:

import sys
sys.path.append('J:\scripts\src\maya')

from test1 import process

test1.process()

但它给了我:

from test1 import process
# Error: ImportError: file <maya console> line 4: cannot import name process #

我在这里做错了什么?

('import test1'没有给出错误,因此路径是正确的)。

最佳答案

解决方案:

重新加载您的 test1 模块,我的猜测是您创建并导入了 test1 ,但内部没有 process 方法。要有效地重新加载模块,您不能只是重新导入它,您必须使用重新加载。

reload(test1)
from test1 import process
<小时/>

其他观察结果:

使用路径时使用原始字符串:

在路径字符串之前添加 r:sys.path.append(r'J:\scripts\src\maya')

Python Doc

The backslash () character is used to escape characters that otherwise have a special meaning, such as newline, backslash itself, or the quote character. String literals may optionally be prefixed with a letter 'r' or 'R'; such strings are called raw strings and use different rules for interpreting backslash escape sequences.

检查导入模块的方式:

您所写的内容无效:

from test1 import process
test1.process()

但是你可以选择任何一种方式:

import test1 
test1.process()

或者:

from test1 import process
process()

总结一下导入模块或包的方法:

>>> import test_imports
>>> from test_imports import top_package
>>> from test_imports import top_module
test_imports.top_module
>>> from test_imports.top_package import sub_module
test_imports.top_package.sub_module

假设您有以下层次结构:

J:\scripts\src\maya # <-- you are here
.
`-- test_imports
|-- __init__.py
|-- top_package
| |-- __init__.py
| |-- sub_package
| | |-- __init__.py
| | `-- other_module.py
| |-- sub_module.py
`-- top_module.py

感谢 Sam & Max blog (法语)

关于python - Maya python从另一个py文件调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34945227/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com