Unity Python包中如何导入numpy、mediapipe等外部库并指定库文件夹?
在Unity的Python包中导入numpy、mediapipe等外部库的方案
可以导入numpy、mediapipe这类外部库,但需要让Unity使用的Python环境能定位到这些库的位置。你之前用IronPython崩溃,改用基于标准CPython的PythonRunner是合理的方向,下面是具体解决方法:
1. 直接在Python脚本中添加库路径
在你的HandNode.py开头加入代码,手动将存放第三方库的文件夹添加到Python的模块搜索路径:
import sys # 替换为你存放numpy、mediapipe的文件夹绝对路径 custom_lib_dir = "D:/UnityProjects/YourProject/PyPackage/ThirdPartyLibs" if custom_lib_dir not in sys.path: sys.path.insert(0, custom_lib_dir) # 之后即可正常导入库 import numpy as np import mediapipe as mp
如果用相对路径,要确保路径是相对于Unity运行时的工作目录(通常是项目根目录),用绝对路径更不易出错。
2. 使用独立虚拟Python环境(更稳定)
推荐为Unity单独配置虚拟环境,避免依赖冲突:
- 用
venv创建虚拟环境:python -m venv unity_py_env - 激活虚拟环境后安装所需库:
pip install numpy mediapipe - 在
HandNode.py中指定虚拟环境的site-packages路径:import sys # Windows示例路径,Mac/Linux路径为unity_py_env/lib/pythonX.X/site-packages site_packages_path = "unity_py_env/Lib/site-packages" sys.path.insert(0, site_packages_path)
如果PythonRunner支持配置Python解释器路径,直接指定虚拟环境中的python.exe(Windows)或python(Mac/Linux)会更省心。
3. 你的C#代码注意事项
当前的C#代码仅负责运行Python脚本,确保scriptPath指向正确的HandNode.py即可。如果PythonRunner提供了环境变量配置项,也可以通过设置PYTHONPATH环境变量来指定库路径,无需在Python脚本中硬编码。
内容的提问来源于stack exchange,提问作者gingertew
相关产品推荐
相关产品推荐

