python如何定位模块?
python使用sys.path中指定的搜索列表在多个位置搜索python模块。要查看sys.path中默认的目录,您可以使用python运行此代码
导入系统,pprint pprint.pprint(系统路径)
代码在FME中的重复使用
为了在FME中使用python模块,你需要做两件事:
确保python知道在哪里可以找到模块(即确保模块位于sys.path引用的目录中)/li>
站点库是用户安装自己模块的标准位置。在Windows上,它通常位于:
C:\python24\lib\site库
如果找不到python安装的站点lib(在unix上,这可以有所不同。
标准的fme python目录
当fme启动python解释器时,它将以下内容添加到sys.path中:
$(fme_home)/python
$(fme_mf_dir)(即映射文件/工作区的位置)
任何位置工作台都将识别为变压器目录(例如“我的文档\fme\transformers”)。
如果希望python在其他位置搜索您的python脚本,有两种方法(通过FME)在运行时将目录添加到sys.path
1。将代码片段(类似于以下内容)添加到工作区的启动python脚本中:
导入sys.path.append(r“c:\project\foo”)
2。将以下内容添加到工作区的标题:
fme_python_path“C:\\project\\foo”
有几种方法可以让FME导入python模块,然而,您甚至不需要显式导入模块。
如果您的模块(例如
MyMeult.Py
)包含一个pythonfictory的实现
(例如MyFactoryClass),你得告诉那家蟒蛇工厂
(PythonCaller
transformer)“要使用的python符号”是mymodule.myFactoryClass。蟒蛇工厂
足够智能,知道在使用实现类之前需要加载“mymodule”模块。
如果要导入模块以用于其他目的,你可以这样做:
在启动python脚本中
添加以下行:
导入MyMo模块
在你的蟒蛇/蟒蛇中
添加以下行:
导入MyMo模块
在映射文件或工作区头中
添加以下行:
fme_python_导入mymodule
蟒蛇
启动脚本
巨蟒召唤者