【发布时间】:2012-06-25 02:08:23
【问题描述】:
我一直在尝试为 blender 安装 pyserial,但我只能将它安装到我的 C 盘上的 python32,我可以做些什么来将它安装到 blender 或从 python32 导入 blender
【问题讨论】:
-
您拥有哪个 Blender 版本/Windows 版本等。请添加更多信息。提前致谢
我一直在尝试为 blender 安装 pyserial,但我只能将它安装到我的 C 盘上的 python32,我可以做些什么来将它安装到 blender 或从 python32 导入 blender
【问题讨论】:
Blender 有自己的 python 安装和库。您可以尝试直接将您的软件包安装到搅拌机。我的目录例如:...\Blender 2.63\2.63\scripts\modules
否则,您始终可以使用 sys.path.append("...") 直接在代码中对路径进行硬编码
更多关于安装可用模块的信息here,阅读python setup.py install --home=<dir>
【讨论】:
对于没有特殊权限的 windows,仅来自 blender python 脚本:
从搅拌机脚本安装你想要的包(tqdm,例如下面给出的):
import pip
pip.main(['install', 'tqdm', '--user'])
从搅拌机控制台观察 pip 在您的配置中实际安装包的路径 (WARNING: The script tqdm.exe is installed in 'C:\Users\<Username>\AppData\Roaming\Python\Python39\Scripts' which is not on PATH):
在搅拌机脚本中,将搅拌机的 pip 安装包的路径添加到PATH:
import sys
packages_path = "C:\\Users\\<Username>\\AppData\\Roaming\\Python\\Python39\\Scripts" + "\\..\\site-packages"
sys.path.insert(0, packages_path )
在脚本中成功导入你的包:
import tqdm
要在 v2.93 中显示 Blender 终端,请单击 Window -> Toggle System Console
整个脚本
# 1. launch in blender python interpreter
import pip
pip.main(['install', 'tqdm', '--user'])
# 2. watch blender's python path in console output at this moment
# 3. insert it to packages_path below
# 4. uncomment the next code and launch script in blender interpreter again
# import sys
# packages_path = "C:\\Users\\<Username>\\AppData\\Roaming\\Python\\Python39\\Scripts" + "\\..\\site-packages" # the path you see in console
# sys.path.insert(0, packages_path )
# import tqdm
【讨论】:
如果你在 Windows 上,你可以像往常一样使用 blender 提供的 python 解释器来做python setup.py install。例如,'c:/Program Files/Blender Foundation/Blender/2.78/python/bin/python.exe' setup.py install。
在Linux上,我认为使用的是原生的python3解释器,所以没有这种问题。
【讨论】:
为你的 python 建立一个永久链接(需要 3.5 及以上版本)并替换你在搅拌机中的 python 目录以直接在搅拌机中使用你的系统 python...
你需要以管理员身份运行cmd(使用右键单击该项目)
D:\Blender Foundation\Blender\2.77>mv python python_old
D:\Blender Foundation\Blender\2.77>mklink /j python d:\Anaconda2\envs\py3
Junction created for python <<===>> d:\Anaconda2\envs\py3
【讨论】:
经过大量搜索和实验,我找到了这个解决方案:
【讨论】: