我試圖將python3應用程序推送到Bluemix,但得到錯誤消息「缺少啓動命令」。我試圖在Python中添加-c「python appname.py」,正如Python中的一樣,而在Linux中則添加-c「python3 appname.py」,但這兩種都不適用於我。任何人都可以給我正確的啓動命令來使用?Python啓動命令應該在Bluemix中看起來如何?
回答
您可以在名爲Procfile
的文件中定義啓動命令。在您推送到Bluemix的應用程序代碼的根目錄中創建Procfile
。該Procfile
的內容應該是這樣的:
web: python3 appname.py
其中appname.py是nameof你的Python腳本運行
Bluemix中的Python buildpack默認爲python-2.7.9。您需要明確告訴Cloud Foundry您正在使用不同版本的Python。爲此,請將名爲runtime.txt
的文件添加到應用的根文件夾中。這個文件的內容應該僅僅是你要使用,像下面的Python版本:
python-3.4.3
這裏看到更多的信息:https://www.ng.bluemix.net/docs/starters/python/index.html#pythonversions
你不需要添加的啓動命令選項你的推送命令。但是,您的應用程序的根文件夾中應該有一個Procfile
,該文件夾包含此啓動命令。它應該如下所示:
web: python appname.py
其中appname.py是您的服務器init文件。
當你推一個應用Bluemix你有設置幾個選項你的開始命令;您可以使用cf push命令使用-c,您可以將詳細信息放入Procfile中,也可以在清單中放入命令行:
有些文檔在這裏:https://docs.cloudfoundry.org/devguide/deploy-apps/app-startup.html
我發現最簡單的就是把它放在manifest.yml與我的實例配置的其餘一起。
以下示例創建兩個使用相同代碼綁定到共享postgres數據庫和cloudamqp服務的Python應用程序。第一個是Django的前端,第二啓動背景芹菜工人:
---
disk_quota: 1024M
domain: eu-gb.mybluemix.net
instances: 1
timeout: 120
memory: 256M
services:
- CloudAMQP-dev
- PostgreSQL-dev
applications:
- name: djangofrontend
host: djangofrontend
command: gunicorn myapp.wsgi
- name: workerbackend
host: workerbackend
no-route: true
command: python manage.py celery worker -A myapp -l debug
我只花了半天找出一些這方面的語法,所以我希望有人離了我發現這個有用的未來。
嗨。我偶然發現了這個答案,這是我遇到的同樣的問題。我是這樣的新手,但是如何讓celery命令與manage.py一起工作? – Jome
@Jome我在[Github](https://github.com/Chaffleson/blupy)上有一個演示應用程序,如果你喜歡,你可以看一個有效的例子 - 這是一個Bluemix可部署的應用程序,它使用芹菜和很少有其他的東西可以在平臺上顯示通用功能。 基本上你有兩個具有相同代碼的應用程序;第一個是用'gunicorn'命令啓動來運行你的前端;第二個是用'python manage.py celery worker -A myapp -l debug'啓動來運行芹菜後端。 – Chaffelson
- 1. %load filename.py命令在Jupyter筆記本中看起來如何?
- 2. 如何從Python啓動命令窗口
- 3. Bluemix Python應用程序啓動失敗
- 4. KeepAlive HTTP頭應該如何在嗅探器中看起來像?
- 5. 如何在Atom中安裝shell命令來啓用atom命令?
- 6. 如何在命令行中啓動textmate
- 7. 我應該如何在Python中實現「嵌套」子命令?
- 8. 頁面看起來大於它應該
- 9. CSS Submit Form看起來不像應該
- 10. 如何在啓動時運行命令?
- 11. awk命令在看起來不同的文件中找到
- 12. 在CMD中,「python」啓動Python 3.3,「py」啓動Python 2.7,我該如何改變它?
- 13. 如何從查看ProgramFiles(x86)的命令行啓動IIS Express?
- 14. 如何看JBOSS是否從命令行啓動/停止
- 15. npm命令行 - 如何在啓動後輸入新命令
- 16. img的src應該如何看起來像
- 17. 這些導軌路徑應該如何看起來像?
- 18. .htaccess應該如何看起來像Symfony路由
- 19. Backbone.js任務應該如何分組視圖看起來像
- 20. 如何從命令行啓動該程序?
- 21. 在啓動時啓動PHP命令行
- 22. 有沒有辦法在bluemix中啓動Docker容器並查看命令行輸出?
- 23. 如果一個cookie不存在,就應該看起來像是
- 24. 通過python啓動多屏幕命令
- 25. 如何在啓動「rvmsudo rails server」命令時啓動
- 26. 在洋蔥建築中的參考應該看起來像
- 27. 我應該使用什麼命令從Lua Intepreter啓動程序?
- 28. AWS S3執行命令看起來不起作用
- 29. Go類型自動轉換,當它看起來不應該
- 30. 啓動新的命令行並在該shell中彈出
Thnx,爲您的答覆傑克。我按照你的建議做了,並在其中添加了一個包含python-3.4.1的runtime.txt。我可以在cf cli trace中看到它安裝了3.4.1,但後來它以下面的msg崩潰: >「CRASHED」,「exit_status」=> - 1,「exit_description」=>「缺少啓動命令」,「 cr這就是爲什麼我懷疑當我推送我的應用程序時需要使用-c選項 sh_timestamp「=> 1430987236} –
@UlfEdholm你想在你的Procfile中設置啓動命令。對不起,我應該清楚,沒有必要將啓動命令設置爲您的推送選項。將更新回答 –