首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Heroku Procfile不进入目录吗?

Heroku Procfile不进入目录吗?
EN

Stack Overflow用户
提问于 2019-06-16 22:17:04
回答 1查看 444关注 0票数 0

这是我的文件结构:

代码语言:javascript
复制
requirements.txt
Procfile
Chess/
      -- lichess-bot/
                     -- lichess-bot.py
                     -- config.yml
                     -- (many other files related to lichess-bot.py)

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

代码语言:javascript
复制
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的调用

代码语言:javascript
复制
CONFIG = load_config(args.config or "./config.yml")

我需要执行的命令是

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

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

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

我试过这个Procfile

代码语言:javascript
复制
worker: cd chess
worker: cd lichess-bot
worker: chmod +x ./engines/stockfish_10_x64
worker: python lichess-bot.py -u

但是Heroku认不出它。

如果我手动这么做:

代码语言:javascript
复制
~ $ cd chess
~/chess cd lichess-bot
~/chess/lichess-bot python lichess-bot.py -u

它工作得很完美

如何从Procfile访问目录,然后在没有错误的情况下执行该文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-17 01:13:38

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

代码语言:javascript
复制
CONFIG = load_config(args.config or "./config.yml")

您可以将config.yml移动到存储库的根,也可以提供args.config。看起来,这可以用--config来完成。

您的Procfile应该只定义流程类型。它们不是脚本,它们不应该包含许多“步骤”。有点像

代码语言:javascript
复制
worker: python lichess-bot.py --config chess/lichess-bot/config.yml -u

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56623013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档