如何在Python环境中运行ruby脚本?

gab6jxml  于 12个月前  发布在  Ruby
关注(0)|答案(4)|浏览(96)

我有一个名为foo.rb的Ruby脚本,我想在Maple环境的上下文中运行它。怎么做?
bundle exec foo.rb不工作,因为exec需要shell脚本。

sqyvllje

sqyvllje1#

将脚本名称传递给ruby命令:

bundle exec ruby [script_file_name]

如果你也想要Rails环境:

bundle exec rails runner [script_file_name]
yyyllmsg

yyyllmsg2#

例如,我想使用相同版本的Rubocop作为我的Rails应用程序,而不是最新的系统应用程序,所以在脚本中这样做:

require 'bundler'
Bundler.require

# ...

允许我使用我的应用程序的rubocop版本。

brccelvz

brccelvz3#

如果你想创建一个可以在项目中的bundle上下文中运行的脚本,你可以通过编程方式调用Bundler。例如,给定一个项目:

foo
├── Gemfile
└── bar
    └── baz.rb

你可以在baz.rb的顶部放置以下代码,以便给予它访问Gemfile中的gem的权限:

#!/usr/bin/env ruby

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
require 'bundler/setup'

# ...etc.

这样,您就可以直接调用脚本,而无需使用bundle exec,也不必从项目目录中调用它。

2admgd59

2admgd594#

你可以把它变成一个脚本- add

#!/usr/bin/env ruby

到文件的开头,并使其可执行。然后bundle exec foo.rb将按预期工作。
(This是在unix或OSX上-不确定Windows)
请访问http://bundler.io/v1.15/man/bundle-exec.1.html#Loading
另请参阅https://coderwall.com/p/kfyzcw/execute-ruby-scripts-directly-without-bundler-exec,了解如何在不需要bundle exec的情况下运行捆绑依赖项的ruby脚本

相关问题