我正在编写一个简单的IronWorker in Python来处理awsapi。在
为此,我想使用通过PiPy分发的boto library。默认情况下,IronWorker运行时环境中不安装boto库。在
如何将boto库依赖性与IronWorker代码捆绑在一起?在
理想情况下,我希望我可以使用gem dependancy bundling available for Ruby IronWorkers-即myRuby.worker
中的指定
gemfile '../Gemfile', 'common', 'worker' # merges gems from common and worker groups
在Python Loggly sample中,我看到使用了hoover库:
^{pr2}$但是,我看不到您在何处/如何指定您想要的hoover库版本,或者从何处下载。在
在pythonironworkers中使用第三方库的正式/正确方法是什么?在
[编辑]自从这个答案被写入并被接受以来,我们已经对我们的工具集进行了一些工作。answer from my colleague below是推荐的前进路线。[/edit]
我为IronWorker编写了Python客户机库。我也受雇于铁.io. 在
如果您使用的是Python客户机库,那么最简单(也是推荐的)方法是复制库的已安装文件夹,并在上载包时包含它。上面的Python logly示例就是这样做的。正如您所说,这并没有指定库的版本或从何处下载库,因为它并不关心。它只需要安装在系统上的那个并使用它。当你在本地机器上上传什么时,输入什么。在
另一个选择是使用我们的CLI来上载您的worker,并使用一个.worker file。在
为此,您需要做的是:
创建机器人工人文件:
第二行是pip命令,将运行该命令来安装依赖项。您可以像从命令行运行的任何pip命令一样修改它。它将在“构建”阶段对worker执行该命令,因此它只执行一次,而不是每次运行任务。在
第三行应该改为您要运行的Python文件,它是您的Python worker文件。这是我们用来测试这个的:
^{pr2}$如果你把它保存为botoworker.py,以上内容不作任何修改。:)
第四行是一个shell脚本,它将实际运行您的worker。我已经包括了我们下面使用的那个。把它另存为botoworker.sh,并且您不必担心修改上面的.worker文件。在
如果不命名Python文件,您会注意到它引用了Python文件botoworker.py,记住在这里也要换。所有这些操作都是将PYTHONPATH设置为包含已安装的库,然后运行Python文件。在
要上载此文件,只需确保安装了CLI(gem install iron_worker_ng,确保您的Ruby版本为1.9.3或更高版本),然后在shell中运行“iron_worker upload botoworker”,该目录与机器人工人文件在。在
希望这有帮助!在
更新的iron_worker版本具有
pip
命令的本机支持。 所以,你需要:相关问题 更多 >
编程相关推荐