Heroku Procfile 不进入目录?
Heroku Procfile not going into directories?
这是我的文件结构:
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")
我需要执行的命令是
chmod +x ./engines/stockfish_10_x64
python lichess-bot.py -u
我在 Heroku bash 中试过这个:python ./chess/lichess-bot/lichess-bot.py -u
但它 returns
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
应该只定义流程类型。它们不是脚本,不应包含很多 "steps"。像
worker: python lichess-bot.py --config chess/lichess-bot/config.yml -u
应该有效(假设您的目录实际上被称为 chess/
而不是 Chess/
)。如果您需要使引擎可执行,请考虑在本地执行此操作并将其作为可执行文件提交。
这是我的文件结构:
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")
我需要执行的命令是
chmod +x ./engines/stockfish_10_x64
python lichess-bot.py -u
我在 Heroku bash 中试过这个:python ./chess/lichess-bot/lichess-bot.py -u
但它 returns
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
应该只定义流程类型。它们不是脚本,不应包含很多 "steps"。像
worker: python lichess-bot.py --config chess/lichess-bot/config.yml -u
应该有效(假设您的目录实际上被称为 chess/
而不是 Chess/
)。如果您需要使引擎可执行,请考虑在本地执行此操作并将其作为可执行文件提交。