请帮助我解决如何将脚本保存在一个文件夹中,因为我在Script2中导入Script2时正面临这个问题。下面是两个脚本。
Script1 : Variable.sikuli
PID = "r'C:\Program Files (x86)\Microsoft Office\Office14\outlook.exe'"
当我保存脚本(Variable.sikuli)时,默认情况下它将在"Variable.py“和"Variable.html”中创建一个文件夹"Variable.sikuli“
Script2 : openMO.sikuli
def openMO():
openApp(PID) # PID will taken from Variable.sikuli
openMO()
当我保存脚本(openMO.sikuli)时,默认情况下它将在"openMO.py“和"openMO.html”中创建一个文件夹"openMO.sikuli“
现在我的问题是:
发布于 2015-02-20 19:08:53
我不认为您应该或可以将多个Sikuli脚本放在一个文件夹中,以使它们彼此可见。通常,包含您要导入的..sikuli的目录/文件夹必须位于sys.path
中。当导入其他Sikuli脚本时,Sikuli会自动在同一个目录中找到它们。导入的脚本必须包含以下语句(作为第一行):
from sikuli import *
这对于Python环境了解Sikuli类、方法、函数和全局名称是必要的。
下面是一个例子
# on Windows
myScriptPath = "c:\\someDirectory\\myLibrary"
# on Mac/Linux
myScriptPath = "/someDirectory/myLibrary"
# all systems
if not myScriptPath in sys.path: sys.path.append(myScriptPath)
# supposing there is a myLib.sikuli
import myLib
# supposing myLib.sikuli contains a function "def myFunction():"
myLib.myFunction() # makes the call
更多信息是可用的这里。
发布于 2015-03-27 07:11:13
可能有点晚,但如果您想要导入其他文件的路径之类的东西,您也可以尝试使用全局变量。
不建议在一个.sikuli文件夹中放置多个脚本。
如果您的脚本/程序变得更大,它可能会变得非常混乱。
使用全局变量,您可以创建一个可以在整个脚本中使用的变量。
在python中导入文件时,它会立即运行类,并设置变量。
如果在脚本A中定义了全局变量,然后让脚本B导入脚本A,那么脚本B也知道脚本A的全局变量是什么样的。
要在定义中设置或使用全局变量,必须首先使用“全局variableName”来调用它。
下面我有一些示例代码,这些代码可能会使事情变得更清楚。
文件: BrowserPath.sikuli
# Define a Global variable
PathFireFox = ''
class Fire():
def __init__(self):
global PathFireFox
PathFireFox = r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
# Run Fire()
Fire()
文件: BrowserMain.sikuli
# Import other class.
from BrowserPath import *
class Main():
def __init__(self):
global PathFireFox
App.open(PathFireFox)
# Run Main class
Main()
https://stackoverflow.com/questions/28623478
复制相似问题