Python Rake任务在Heroku上因“源:未找到”而失败
我有一个Rails项目,其中包含一个名为Python Rake任务在Heroku上因“源:未找到”而失败,python,ruby-on-rails,ruby,heroku,virtualenv,Python,Ruby On Rails,Ruby,Heroku,Virtualenv,我有一个Rails项目,其中包含一个名为update\u data的rake任务,如下所示: every 1.day, :at => '2:30 am' do root = File.expand_path('../..', __FILE__) system("""(source #{root}/data_scripts/venv/bin/activate; python #{root}/data_scripts/scripts/main.py;
update\u data
的rake任务,如下所示:
every 1.day, :at => '2:30 am' do
root = File.expand_path('../..', __FILE__)
system("""(source #{root}/data_scripts/venv/bin/activate;
python #{root}/data_scripts/scripts/main.py;
deactivate)""")
end
这应该首先激活virtualenv,运行脚本,然后停用virtualenv。
当我运行
rake update\u data
时,它工作得非常好。但是,当我运行heroku run rake update_data
时,它会失败,出现sh:1:source:not found
。我应该怎么做才能在Heroku上获得源代码?我觉得你不需要激活你的virtualenv
只需使用virtualenv的python可执行文件:
every 1.day, :at => '2:30 am' do
root = File.expand_path('../..', __FILE__)
system("#{root}/data_scripts/venv/bin/python #{root}/data_scripts/scripts/main.py")
end
我觉得你不需要激活你的虚拟电视
只需使用virtualenv的python可执行文件:
every 1.day, :at => '2:30 am' do
root = File.expand_path('../..', __FILE__)
system("#{root}/data_scripts/venv/bin/python #{root}/data_scripts/scripts/main.py")
end
错误消息sh:1:source:notfound
表示:
您运行的是sh
,而不是bash
source
不是内置命令,shell无法在PATH
中找到source
要确认此运行,请键入source
,并将输出与尝试执行foobar
进行比较
我建议您尝试将命令传递给bash(通过`bash-c“您的命令在这里”)。您可能还需要一个Python构建包。您可以添加以下内容:
heroku buildpacks:add heroku/python
错误消息sh:1:source:notfound
表示:
您运行的是sh
,而不是bash
source
不是内置命令,shell无法在PATH
中找到source
要确认此运行,请键入source
,并将输出与尝试执行foobar
进行比较
我建议您尝试将命令传递给bash(通过`bash-c“您的命令在这里”)。您可能还需要一个Python构建包。您可以添加以下内容:
heroku buildpacks:add heroku/python
我认为{root}/data_scripts/venv/bin/python data_scripts/scripts/main.py
也应该有效。不过,在这种情况下,问题似乎不在命令中,我认为{root}/data\u scripts/venv/bin/python data\u scripts/scripts/main.py
也应该可以。虽然在本例中,问题似乎不在命令中,但我得到了/app/data\u scripts/venv/bin/python:9:/app/data\u scripts/venv/bin/python:Syntax error:EOF in back quote substitution
。heroku环境似乎没有配置为运行Python?有了它,我得到了/app/data\u scripts/venv/bin/Python:9:/app/data\u scripts/venv/bin/Python:Syntax error:EOF in back quote substitution
。heroku环境似乎没有配置为运行Python?heroku buildpack:add heroku/Python
失败,检测set buildpack失败https://codon-buildpacks.s3.amazonaws.com/buildpacks /heroku/python.tgz
当我尝试推送到heroku master时。您需要向根目录添加requirements.txt
目录有关详细信息,请参阅。heroku buildpack:add heroku/python
失败,检测set buildpack失败https://codon-buildpacks.s3.amazonaws.com/buildpacks /heroku/python.tgz当我尝试推送到heroku master时。您需要将requirements.txt
添加到根目录。详情请参阅。