【问题标题】:Ruby Ocra doesn't change the working directoryRuby Ocra 不会更改工作目录
【发布时间】:2015-09-14 16:50:54
【问题描述】:

我将这些行放在我的 Ruby 代码之上,并尝试了多种组合,但都没有奏效。

$:.unshift File.dirname($0)
Dir.chdir(File.dirname($0))

我有一个配置文件与 Ocra 创建的 exe 位于同一目录中。文件由这个加载:

cnf = YAML.load_file('config.yml')

但是,文件不会从所需的同一目录加载。我认为该错误告诉它在 exe 运行时尝试从临时目录加载它。

如何让脚本从与 exe 相同的目录加载 config.yml 文件?

【问题讨论】:

  • GitHub Page 似乎相当直接地解决了这类问题
  • @engineersmnky 仍然不起作用 :( 即使我使用的是 --chdir-first 标志,也会出现同样的错误。
  • 如果我理解你的问题是正确的,那config.yml 是编译后的 exe 的一部分。您是否将config.yml' 添加到您的发行版中?你怎么称呼奥克拉?

标签: ruby ocra


【解决方案1】:

Ocra 使用环境变量来存储 .exe 的位置 ENV["OCRA_EXECUTABLE"] 要访问与您的 ruby​​_script.exe 所在位置相关的文件,您必须将工作更改到那里。以下是一些可能对您有用的代码:

Dir.chdir File.dirname(ENV["OCRA_EXECUTABLE"]) if ENV["OCRA_EXECUTABLE"]

在此行末尾添加“if ENV["OCRA_EXECUTABLE"]”可以防止脚本在没有 ocra 作为 ruby​​ 文件 (.rb) 的情况下运行时引发错误。它只是检查这个 ENV 是否存在,如果存在,那么你的程序正在你的 ocra EXE 中运行

【讨论】:

    猜你喜欢
    • 2016-09-14
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 2021-02-10
    • 2010-10-30
    相关资源
    最近更新 更多