2017-05-17 59 views
11

我試圖把一個Django項目的Heroku,但它一直告訴我,以下內容:失敗推到Heroku的:/app/.heroku/python/bin/pip:No這樣的文件或目錄

/app/.heroku/python/bin/pip: No such file or directory 

完整的錯誤信息如下所示。我該如何解決這個問題?我需要先在Heroku上安裝點子嗎?

Counting objects: 451, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (383/383), done. 
Writing objects: 100% (451/451), 1.07 MiB | 349.00 KiB/s, done. 
Total 451 (delta 87), reused 0 (delta 0) 
remote: Compressing source files... done. 
remote: Building source: 
remote: 
remote: -----> Python app detected 
remote: -----> Installing python-3.5.1 
remote: -----> Installing pip 
remote: -----> Installing requirements with pip 
remote:  /app/tmp/buildpacks/779a8bbfbbe7e1b715476c0b23fc63a2103b3e4131eda558669aba8fb5e6e05682419376144189b29beb5dee6d7626b4d3385edb0954bffea6c67d8cf622fd51 
/bin/steps/pip-install: line 5: /app/.heroku/python/bin/pip: No such file or directory 
remote: !  Push rejected, failed to compile Python app. 
remote: 
remote: !  Push failed 
remote: Verifying deploy... 
remote: 
remote: ! Push rejected to rocky-tor-70537. 
remote: 
To https://git.heroku.com/rocky-tor-70537.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to 'https://git.heroku.com/rocky-tor-70537.git' 

我的requirements.txt文件是空的,如下所示。

# this is for Heroku and other servers. 
# Locally, you should install requirements_base.txt 
-r requirements_server.txt 

我requirements_server.txt如下:

-r requirements_base.txt 
# packages that are unnecessary on Windows/Mac local dev environments, or don't install properly 
psycopg2>=2.5.1 

我requirements_base.txt如下:

appdirs==1.4.3 
asgi-redis==0.14.1 
asgiref==0.14.0 
autobahn==0.16.0 
Babel==2.3.4 
boto==2.42.0 
channels==0.17.3 
colorama==0.3.7 
contextlib2==0.5.4 
coverage==4.2 
daphne==0.14.3 
dj-database-url==0.4.1 
Django==1.8.8 
django-countries==4.0 
django-easymoney==0.7.1 
django-floppyforms==1.7.0 
django-idmap==0.4.1 
django-vanilla-views==1.0.4 
djangorestframework==3.4.6 
honcho==0.7.1 
huey==1.2.0 
IPy==0.83 
mock==2.0.0 
msgpack-python==0.4.8 
otree-core==1.2.8 
otree-save-the-change==1.1.3 
packaging==16.8 
pbr==1.10.0 
py==1.4.31 
pyparsing==2.2.0 
pytest==2.9.2 
pytest-django==3.0.0 
python-redis-lock==3.2.0 
pytz==2016.6.1 
raven==5.25.0 
redis==2.10.5 
requests==2.11.1 
schema==0.6.2 
six==1.10.0 
Twisted==16.2.0 
txaio==2.5.1 
unicodecsv==0.14.1 
whitenoise==3.2.1 
ws4py==0.3.5 
XlsxWriter==0.9.3 
zope.interface==4.2.0 

回答

0

如果您使用的是默認的Heroku buildpack我猜想,您項目文件夾中的requirements.txt文件丟失。

+0

我有requirements.txt。 – user3821012

+0

你使用一些定製buildpack嗎?你可以試試'heroku config:unset BUILDPACK_URL'並再次推送你的代碼 –

+0

如何檢查buildpack?我使用了上述命令,仍然收到相同的錯誤消息。 – user3821012

13

我最近遇到這個問題,並能夠通過更改runtime.txt中的python版本來調整它。

更改爲

python-3.5.2 

而基於關你列出你的要求,好像你永遠不會得到的requirements_base.txt。

在你requirements_server.txt文件,這樣改變它:

-r requirements_base.txt 

列在其中。

+0

由於某種原因,它不適合我。仍然收到相同的錯誤消息。我不知道爲什麼當我將runtime.txt更改爲其他版本的python時,它仍然試圖安裝python-3.5.1(我試過3.6.1和3.5.2)。有沒有其他地方可以指定使用的Python版本? – user3821012

+0

你可以發佈requirements.txt文件嗎? –

+0

編輯評論以反映requirements.txt文件的問題 –

0

我在Ubuntu 16.04和手動安裝的Heroku CLI後,同樣的問題,使用

wget https://cli-assets.heroku.com/branches/stable/heroku-REPLACE_ME_OS-REPLACE_ME_ARCH.tar.gz -O heroku.tar.gz 

mkdir -p /usr/local/lib 

tar -xvzf heroku.tar.gz -C /usr/local/lib 

/usr/local/lib/heroku/install 

它的工作就像一個魅力。

在文件夾中我有4個文件。一個是python腳本,第二個是procfile(沒有擴展名),內容爲web: gunicorn skripta1:app。三是requirements.txt有:

appdirs==1.4.3 
bokeh==0.12.5 
click==6.7 
Flask==0.12.2 
gunicorn==19.7.1 
itsdangerous==0.24 
Jinja2==2.9.6 
MarkupSafe==1.0 
numpy==1.12.1 
packaging==16.8 
pandas==0.20.1 
pandas-datareader==0.4.0 
pyparsing==2.2.0 
python-dateutil==2.6.0 
pytz==2017.2 
PyYAML==3.12 
requests==2.14.2 
requests-file==1.4.2 
requests-ftp==0.3.1 
six==1.10.0 
tornado==4.5.1 
Werkzeug==0.12.2 

;第四是runtime.txt與python-3.5.2

0

根據Heroku的文檔中,只有兩個正式支持Python運行是2.7.13和3.6.1。 我最近在heroku中發生了oTree部署的相同問題,但只要我將runtime.txt更改爲python-3.6.1,一切都很順利。

5

我只是有兩個錯別字我runtime.txt

確保它說:python-3.6.1,而不是Python-3.6.1python 3.6.1

的錯誤信息是非常糟糕的。願這篇文章能省30分鐘。

+1

謝謝!有'Python 2.7.13',但需要'python-2.7.13'。如果你錯過了'-',直到它試圖使用'pip',它纔會正常繼續。 – frmdstryr

0

哦,親愛的 - 我爲了嘗試改變行號刪除空行中我requirements/production.txt和一切開始工作(或者說在我的下一個完全不同的錯誤)

0

我碰到了同樣的問題上Windows試圖將一個Python應用程序部署到Heroku。原來這是一個文件編碼問題。根據您創建Procfile,requirements.txt和runtime.txt的方式,您的編碼可能會有所不同。

假設您正在運行Windows,請使用PowerShell。獲取以下PowerShell Function並將其粘貼到PowerShell控制檯。使用這個,你可以檢查你的文件編碼: get-fileencoding requirements.txt 如果它回來除了ascii之外的任何東西可能是問題。就我而言,我的三個文件都是unicode。我剛剛這樣做是爲了強制他們使用ASCII: 'python-3.6.1' | out-file -en ascii runtime.txt 您也可以使用編輯器,然後使用ASCII編碼保存文件。

一旦我對Procfile進行了此更改,requirements.txt和runtime.txt就能夠成功部署到Heroku。

0

我是從應用程序引擎切換到Heroku的,有一個setup.cfg文件在根目錄與以下內容:

[install] 
prefix= 

這導致此問題,同時部署。去除一切後,進展順利。

相關問題