在这篇文章中,我们将为您详细介绍带有命令行Blender参数的Python脚本的内容,并且讨论关于blenderpython脚本的相关问题。此外,我们还会涉及一些关于asp.net–使用IronPyt
在这篇文章中,我们将为您详细介绍带有命令行Blender参数的Python脚本的内容,并且讨论关于blender python脚本的相关问题。此外,我们还会涉及一些关于asp.net – 使用IronPython调用带有参数的Python脚本 – “需要超过x值才能解压缩”、Blender导入问题:python脚本错误、C#调用带参数的python脚本、main中的python命令行参数,跳过脚本名称的知识,以帮助您更全面地了解这个主题。
本文目录一览:- 带有命令行Blender参数的Python脚本(blender python脚本)
- asp.net – 使用IronPython调用带有参数的Python脚本 – “需要超过x值才能解压缩”
- Blender导入问题:python脚本错误
- C#调用带参数的python脚本
- main中的python命令行参数,跳过脚本名称
带有命令行Blender参数的Python脚本(blender python脚本)
我是Blender和python的新手。我有一个搅拌器模型(.blend),我想批量渲染为几个图像,为每个图像提供一些属性。
我用这些参数编写了一个python脚本,例如:
import bpy
pi = 3.14159265
fov = 50
scene = bpy.data.scenes["Scene"]
# Set render resolution
scene.render.resolution_x = 480
scene.render.resolution_y = 359
# Set camera fov in degrees
scene.camera.data.angle = fov*(pi/180.0)
# Set camera rotation in euler angles
scene.camera.rotation_mode = 'XYZ'
scene.camera.rotation_euler[0] = 0.0*(pi/180.0)
scene.camera.rotation_euler[1] = 0.0*(pi/180.0)
scene.camera.rotation_euler[2] = -30.0*(pi/180.0)
# Set camera translation
scene.camera.location.x = 0.0
scene.camera.location.y = 0.0
scene.camera.location.z = 80.0
所以然后我像
blender -b marker_a4.blend --python "marker_a4.py" -o //out -F JPEG -x 1 -f 1
然后例如,如果我尝试使用python脚本的参数
...
import sys
...
fov = float(sys.argv[5])
...
并运行它:
blender -b marker_a4.blend --python "marker_a4.py" 80.0 -o //out -F JPEG -x 1 -f 1
渲染完成,但我在开始时收到此消息。
read blend: /home/roho/workspace/encuadro/renders/marker/model/marker_a4.blend
read blend: /home/roho/workspace/encuadro/renders/marker/model/80.0
Unable to open "/home/roho/workspace/encuadro/renders/marker/model/80.0": No such file or directory.
...
谁能告诉我是什么原因造成的?我认为Blender也将其解析为模型,但不知道为什么。后来我尝试了一些更复杂的方法来解析python(argparse)中的参数,但是它根本没有用。因此,我认为在此级别上可能会发生一些奇怪的事情。
谢谢!
asp.net – 使用IronPython调用带有参数的Python脚本 – “需要超过x值才能解压缩”
ScriptEngine scriptEngine; var opts = new Dictionary<string,object>(); opts["Arguments"] = new[] { Server.MapPath(@"~\Processing\input.7z"),// Input Server.MapPath(@"~\Processing\key.pem"),// Key Server.MapPath(@"~\Processing\") }; // Output scriptEngine = Python.CreateEngine(opts); var sp = scriptEngine.GetSearchPaths(); sp.Add(Server.MapPath(@"~\python\lib")); scriptEngine.SetSearchPaths(sp); var scope = scriptEngine.Runtime.ExecuteFile(Server.MapPath(@"~\python\test.py"));
该脚本采用以下参数:
arg0,input,key,output = sys.argv
我收到错误“需要超过3个值来解压”.我究竟做错了什么?
解决方法
arg0,output = sys.argv
将sys.argv中的参数列表解压缩到左侧的四个变量中.由于sys.argv中只有三个参数,因此失败并显示您发布的错误消息(显然您需要手动传入脚本路径,以使其显示为sys.argv中的第一个元素).
尝试使用不同的方式传递命令行参数(从this answer开始):
scriptEngine.Sys.argv = List.Make(new[] { 'input.7z',... });
或者,如果这不起作用,则从Python文件中的赋值中删除arg0变量,或者将脚本的路径显式添加为C#中的第一个参数.
Blender导入问题:python脚本错误
如何解决Blender导入问题:python脚本错误?
当我尝试在搅拌器上从unrealengine4导入某些结构时,在控制台上出现问题,提示如下:
PYTHON INteraCTIVE CONSOLE 3.7.7 (default,Jun 13 2020,11:11:23) [MSC v.1916 64 bit (AMD64)]
Builtin Modules: bpy,bpy.data,bpy.ops,bpy.props,bpy.types,bpy.context,bpy.utils,bgl,blf,mathutils
Convenience Imports: from mathutils import *; from math import *
Convenience Variables: C = bpy.context,D = bpy.data
我从没学习过python,也不知道如何解决。 对不起,我的英语不好。预先感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
C#调用带参数的python脚本
问题描述:使用C#调用下面的带参数的用python写的方法,并且想要获取返回值。
def Quadratic_Equations(a,b,c):
D=b**2-4*a*c
ans=[]
ans.append((-b+math.sqrt(D))/(2*a))
ans.append((-b-math.sqrt(D))/(2*a))
return ans
C#代码如下:
class Program
{
static void Main(string[] args)
{
string name = "CallPythonExam.py";
List<string> param = new List<string>() { "3", "5", "1" };
RunPythonScript(name, param);
}
static void RunPythonScript(string name, List<string> args)
{
Process p = new Process();
// .py文件的绝对路径
string path = @"D:\PythonPrograms\VelocityProfile\VelocityProfile\" + name;
string arguments = path;
// 添加参数
foreach (var item in args)
arguments += " " + item;
// python安装路径
p.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe";
// 下面这些是我直接从网上抄下来的.......
p.StartInfo.Arguments = arguments;
// 不启用shell启动进程
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;
// 不创建新窗口
p.StartInfo.CreateNoWindow = true;
p.Start();
StreamReader sr = p.StandardOutput;
while (!sr.EndOfStream)
Console.WriteLine(sr.ReadLine());
Console.ReadLine();
p.WaitForExit();
}
}
python代码如下:
import math
import sys
def Quadratic_Equations(stra,strb,strc):
a=float(stra)
b=float(strb)
c=float(strc)
D=b**2-4*a*c
ans=[]
ans.append((-b+math.sqrt(D))/(2*a))
ans.append((-b-math.sqrt(D))/(2*a))
print(ans[0])
print(ans[1])
#return str(ans[0])
Quadratic_Equations(sys.argv[1],sys.argv[2],sys.argv[3])
这样就可以在屏幕上输出方程的解。
https://github.com/Larissa1990/use-C-to-call-.py-file
main中的python命令行参数,跳过脚本名称
这是我的剧本
def main(argv): if len(sys.argv)>1: for x in sys.argv: build(x)if __name__ == "__main__": main(sys.argv)
所以从命令行我写 python myscript.py commandlineargument
我希望它跳过myscript.py
和简单的运行commandlineargument
通过commandlineargument(n)
所以我知道我的for循环并不能解决这个问题,但是我如何使它做到这一点呢?
答案1
小编典典由于sys.argv是一个列表,因此可以使用slicingsys.argv[1:]
:
def main(argv): for x in argv[1:]: build(x)if __name__ == "__main__": main(sys.argv)
但是,如果您只能有一个脚本参数,则只需通过index:获得它sys.argv[1]
。但是,您应该检查的长度sys.argv
是否大于1,如果不超过则抛出错误,例如:
def main(argv): if len(argv) == 1: print "Not enough arguments" return else: build(argv[1])if __name__ == "__main__": main(sys.argv)
今天的关于带有命令行Blender参数的Python脚本和blender python脚本的分享已经结束,谢谢您的关注,如果想了解更多关于asp.net – 使用IronPython调用带有参数的Python脚本 – “需要超过x值才能解压缩”、Blender导入问题:python脚本错误、C#调用带参数的python脚本、main中的python命令行参数,跳过脚本名称的相关知识,请在本站进行查询。
本文标签: