gpt4 book ai didi

python - Heroku Procfile 不进入目录?

转载 作者:行者123 更新时间:2023-12-01 07:42:33 24 4
gpt4 key购买 nike

这是我的文件结构:

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] No such file or directory: './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的配置文件:

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/)。如果您需要使引擎可执行,请考虑在本地执行此操作并将其作为可执行文件提交。

关于python - Heroku Procfile 不进入目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com