我真的是Pyhton世界的新手。我实际上在做音乐,我使用软件调用Ableton。
我在做的是为这个软件编写2个脚本。
实际上它们可以在Ableton GUI中选择。每个脚本都链接到一个硬件接口。这些脚本所做的是让我定制硬件接口控制软件的方式(Ableton)。 我的2脚本没问题,但运行良好,但是我希望能够从一个脚本发送命令到另一个脚本(以允许在第二个控制器按下按钮时在第一个控制器上执行操作)。
所以我有2个单独的文件夹与2脚本(我不能使用一个文件夹,因为Ableton谁必须独立运行和编译两个脚本)。 因此,让我们打电话给他们文件夹A和文件夹B。
在这两个文件夹中,我都有一个__init__.py和一个main_code.py文件。
的main_code.py文件看起来是这样的:Python 2.7从一个脚本传递给另一个脚本的方法
from __future__ import with_statement
from _Framework.ControlSurface import ControlSurface
import Live
import time
class main_code(ControlSurface):
def __init__(self, c_instance):
ControlSurface.__init__(self, c_instance)
with self.component_guard():
self._suppress_send_midi = True
self.clip = self.selected_scene.clip_slots[self.selected_track_idx].clip
self._suppress_send_midi = False
@property
def selected_track(self):
return self.song().view.selected_track
@property
def selected_track_idx(self):
return self.tuple_idx(self.song().tracks, self.song().view.selected_track)
@property
def selected_scene(self):
return self.song().view.selected_scene
def tuple_idx(self, tuple, obj):
for i in xrange(0, len(tuple)):
if (tuple[i] == obj):
return i
return(False)
正如你可以看到我用一些框架(ControlSurface)和ABLETON API(进口活)。 我想要做的就是将变量self.clip从一个脚本“发送”到另一个,以便它们都具有相同的“值” 对不起,我现在不再了,如果它是一种方法或什么有... 我的第一个想法之一是使用泡菜愚蠢self.clip在一个文件中,并将其加载在另一个,但是当我这样做时,我得到在福顿报告崩溃的错误:
File“ /Users/versonator/Jenkins/live/Projects/AppWebConnector/Resources/third_party/lib/pickle.py“,第1362行,转储
9250ms。 RemoteScriptError:文件“/Users/versonator/Jenkins/live/Projects/AppWebConnector/Resources/third_party/lib/pickle.py”,第224行,转储
9250 ms。 RemoteScriptError:文件“/Users/versonator/Jenkins/live/Projects/AppWebConnector/Resources/third_party/lib/pickle.py”,行306,保存
9251 ms。 RemoteScriptError:RuntimeError 9251 ms。 RemoteScriptError :: 9251 ms。 RemoteScriptError:“Clip.Clip”实例的酸洗未启用(http://www.boost.org/libs/python/doc/v2/pickle.html) 9251 ms。 RemoteScriptError:
其实我用泡菜是这样的:
clip = self.clip
f = open('/Users/Louis/Desktop/test.pickle', 'wb')
pickle.dump(clip, f, -1)
f.close()
即使我不是在所有的程序员,这看起来像一个真正的混乱,我希望有人可以帮我找一个其他的方式做什么我想或解决我的腌制方式!
您可以尝试添加脚本,它将self.clip初始化为带有sys的sys路径; sys.path.append( '/路径/到/脚本/');在需要self.clip的脚本中。那么你应该能够导入脚本,它初始化self.clip并在另一个脚本中使用它。 – BigZ
如果你有时间请给我一个非常简短的例子吗?感谢您的回答 ! – hardoon
self.clip根据按钮更改,我按下硬件接口。你确定,第二个脚本会得到所有这些改变吗?我不知道该怎么做。再次感谢你的帮助。 – hardoon