【问题标题】:Heroku Procfile not going into directories?Heroku Procfile 不进入目录?
【发布时间】:2019-10-30 13:22:54
【问题描述】:

这是我的文件结构:

requirements.txt
Procfile
Chess/
      -- lichess-bot/
                     -- lichess-bot.py
                     -- config.yml
                     -- (many other files related to lichess-bot.py)

config.py中负责打开YAML的部分:

def load_config(config_file):
    with open(config_file) as stream:
        try:
            CONFIG = yaml.load(stream)
        except Exception as e:
            print("There appears to be a syntax problem with your config.yml")
            raise e

lichess-bot.py 这里是config.yml 的电话:

CONFIG = load_config(args.config or "./config.yml")

我需要执行的命令是

  1. chmod +x ./engines/stockfish_10_x64
  2. python lichess-bot.py -u

我在 Heroku bash 中试过这个:python ./chess/lichess-bot/lichess-bot.py -u 但它返回了

FileNotFoundError: [Errno 2] 没有这样的文件或目录:'./config.yml'

我试过这个Procfile:

worker: cd chess
worker: cd lichess-bot
worker: chmod +x ./engines/stockfish_10_x64
worker: python lichess-bot.py -u

但 Heroku 无法识别它。

如果我手动执行此操作:

~ $ cd chess
~/chess cd lichess-bot
~/chess/lichess-bot python lichess-bot.py -u

效果很好

如何从Procfile访问目录,然后执行文件不出错?

【问题讨论】:

  • 问题不是你想的那样。您如何尝试使用config.yml?请edit您的问题并显示您的代码部分。
  • (另外,请注意Chess≠chess。但我认为您问题中带有大写字母的那个是错字,这与您的问题无关。)
  • 我现在将使用配置编辑问题
  • 看看你提到的repo,你似乎已经添加了两个额外的目录嵌套级别。你为什么这样做?

标签: python heroku procfile lichess


【解决方案1】:

代码默认为当前目录下名为config.yml的配置文件:

CONFIG = load_config(args.config or "./config.yml")

您可以将config.yml 移动到存储库的根目录,或者您可以提供args.config。看起来可以使用--config 完成。

您的Procfile 应该只定义流程类型。它们不是脚本,它们不应该包含很多“步骤”。类似的东西

worker: python lichess-bot.py --config chess/lichess-bot/config.yml -u

应该可以工作(假设您的目录实际上称为chess/ 而不是Chess/)。如果您需要使引擎可执行,请考虑在本地执行此操作并将其作为可执行文件提交。

【讨论】:

  • 所以我删除 ./config.yml 并留下 args.config 然后在 Procfile 中提及 --config ?
  • 不,不要更改CONFIG 代码。保留它并在您的工作人员定义中添加 --config 参数。
  • 根据 README.md 我需要执行 python lichess-bot.py -u 可以在没有 的情况下使用你的吗?
  • 我没有把它拿出来。
  • 但是我有一个问题,当我是windows时,如何使引擎可执行Linux,有什么办法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 2015-06-11
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 2014-11-14
  • 1970-01-01
相关资源
最近更新 更多