我现在正在开发一个 Rails 应用程序,只要在我们的应用程序主页上单击一个按钮,它就需要运行一个 python 脚本。我试图找出一种让 rails 运行这个脚本的方法,到目前为止我的两次尝试都失败了。
我的第一次尝试是使用 exec(..) 命令来运行“python script.py”,但是当我这样做时,它似乎运行了文件但终止了 rails 服务器,所以我每次都需要手动重新启动它.
我的第二次尝试是安装 gem“RubyPython”并从那里尝试,但是一旦我运行它,我就不知所措..我找不到任何使用它来运行或加载 python 脚本的人的例子.
对此的任何帮助将不胜感激。
它显示了错误的参数数量,但我传递了3个参数
ScannerWorker.perform_async('bob1','bob2',5)
Run Code Online (Sandbox Code Playgroud)
这里是sidekiq工人代码
class ScannerWorker
include Sidekiq::Worker
def perform(bob1, bob2, bob3)
puts bob1
end
end
Run Code Online (Sandbox Code Playgroud)
sidekiq版本: - 4.2.7
rails 4.2.6
Redis服务器v = 3.0.7
Sidekiq错误: -
2017-01-03T06:29:43.007Z 9547 TID-itjjk WARN: ArgumentError: wrong number of arguments (given 0, expected 2..3)
2017-01-03T06:29:43.007Z 9547 TID-itjjk WARN: /home/smk/14.04/rails/projects/myappname/app/workers/scanner_worker.rb:5:in `test'
/home/smk/14.04/rails/projects/myappname/app/workers/scanner_worker.rb:5:in `perform'
/home/smk/14.04/rails/projects/myappname/vendor/bundle/gems/sidekiq-4.2.7/lib/sidekiq/processor.rb:158:in `execute_job'
/home/smk/14.04/rails/projects/myappname/vendor/bundle/gems/sidekiq-4.2.7/lib/sidekiq/processor.rb:138:in `block (4 levels) in process'
/home/smk/14.04/rails/projects/myappname/vendor/bundle/gems/sidekiq-4.2.7/lib/sidekiq.rb:36:in `block in <module:Sidekiq>'
/home/smk/14.04/rails/projects/myappname/vendor/bundle/gems/sidekiq-4.2.7/lib/sidekiq/processor.rb:133:in `block (3 levels) in process'
/home/smk/14.04/rails/projects/myappname/vendor/bundle/gems/sidekiq-4.2.7/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'
/home/smk/14.04/rails/projects/myappname/vendor/bundle/gems/sidekiq-4.2.7/lib/sidekiq/middleware/server/active_record.rb:6:in `call'
/home/smk/14.04/rails/projects/myappname/vendor/bundle/gems/sidekiq-4.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
/home/smk/14.04/rails/projects/myappname/vendor/bundle/gems/sidekiq-4.2.7/lib/sidekiq/middleware/server/retry_jobs.rb:74:in `call'
/home/smk/14.04/rails/projects/myappname/vendor/bundle/gems/sidekiq-4.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke' …
Run Code Online (Sandbox Code Playgroud) 我正在尝试捆绑安装,rake db:migrate
bundle install
/home/name/.rvm/gems/ruby-2.3.0/bin/rake:22:in `<main>': undefined method `activate_bin_path' for Gem:Module (NoMethodError)
from /home/name/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
from /home/name/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我试过gem install bundler
它会给出错误
ERROR: While executing gem ... (TypeError)
no implicit conversion of nil into String
Run Code Online (Sandbox Code Playgroud)
哪个红宝石
/home/smk/.rvm/rubies/ruby-2.3.0/bin/ruby
Run Code Online (Sandbox Code Playgroud)
rvm列表
ruby-2.0.0-p648 [ x86_64 ]
ruby-2.1.5 [ x86_64 ]
ruby-2.2.5 [ x86_64 ]
=* ruby-2.3.0 [ x86_64 ]
Run Code Online (Sandbox Code Playgroud)
我试过很多解决方案,但没有用,
请任何人帮助我.
我试图删除给定链接后的交换文件:https://www.digitalocean.com/community/questions/delete-swap-file
但是,当我键入:
sudo rm /swapfile
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
rm: cannot remove `swapfile': Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我已将交换文件的权限更改为777,我相信我拥有root权限.仍然无法删除它.
我正在使用selectpicker,下拉菜单显示两次,如图所示
当我删除selectpicker类时,它显示正常的下拉列表
<div class="row">
<div class="col-sm-12">
<div class="card-box">
<h4 class="m-t-0 header-title"><b>Select app</b></h4>
<div class="row">
<div class="col-md-4">
<div class="p-20">
<select class="selectpicker" data-style="btn-white">
<option>abc</option>
<option>xyz</option>
<option>123</option>
</select>
</div>
</div>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
$('.selectpicker').selectpicker();
$(":file").filestyle({input: false});
});
Run Code Online (Sandbox Code Playgroud)