2012-04-17 57 views
5

Tôi nhận được lỗi này ([Errno 2] Không có tệp hoặc thư mục nào như vậy) sau khi tôi đẩy repo đến master master. Đây là nhật ký của tôi.Django Triển khai sử dụng Heroku - [Errno 2] Không có tệp hoặc thư mục nào như vậy

2012-04-17T18:24:53+00:00 app[web.1]: python: can't open file '/test/project/manage.py': [Errno 2]  No such file or directory 

2012-04-17T18:24:54+00:00 heroku[web.1]: Process exited with status 2 

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from starting to crashed 

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from crashed to created 

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from created to starting 

2012-04-17T18:24:57+00:00 heroku[web.1]: Starting process with command python /test/project/manage.py runserver 0.0.0.0:4473 --noreload 2012-04-17T18:24:57+00:00 app[web.1]: python: can't open file '/test/project/manage.py': [Errno 2] No such file or directory 

My Procfile trông giống như sau:

web: python /test/project/manage.py runserver 0.0.0.0:$PORT --noreload 

Tôi không biết tại sao nó không thể mở tập tin. Nó sẽ mở ra tốt khi tôi đang sử dụng máy chủ phát triển của tôi. Bất kỳ ý tưởng? Cảm ơn vì đã đọc.

+0

Are bạn đẩy nhánh chủ của repo địa phương của bạn? – ryudice

+0

Tôi nghĩ vậy.Nếu tôi làm chi nhánh git, điều duy nhất tôi thấy là * master – Zach

Trả lời

11

thiết lập hiện tại của bạn trong Procfile của bạn tham chiếu một đường dẫn tuyệt đối '/test/project/manage.py' không tồn tại trên Heroku. '/ Test/là gốc của cá thể bạn đang chạy và không chính xác. Trước tiên, bạn nên thay đổi này là đường dẫn tương đối, đây là khả năng một cái gì đó như:

web: python project/manage.py runserver 0.0.0.0:$PORT --noreload 

Nếu điều này không làm việc, bạn có thể khám phá những vị trí của dự án bằng cách chạy:

heroku run bash 

này nên đặt bạn trong '/ app' từ đây bạn có thể thấy con đường để bắt đầu dự án của bạn là gì.

Vì lần khởi động đầu tiên của bạn có khả năng không thể bắt đầu quá trình, bạn có thể cần phải mở rộng quy trình web. Sau đó bạn có thể làm điều này với:

heroku scale web=1 
+0

Điều này làm việc cho tôi cũng như trên một ứng dụng web.py trên Heroku – JoshOiknine

0

bạn có thể đính kèm một ls vào heroku để tìm hiểu cấu trúc thực của hệ thống tệp.

> heroku run ls/
Running ls/attached to terminal... up, run.1 
app dev home lib64  mnt sbin usr 
bin etc lib lost+found proc tmp var 

Nó có thể là trường hợp đó họ quấn ứng dụng của bạn bên trong một thư mục app

+0

Điều này cũng tương tự đối với tôi. – Zach

+0

do đó .. bạn có thể muốn thực hiện 'web: python /app/test/project/manage.py runserver 0.0.0.0:$PORT --noreload' thay vì – Doboy

0

Hãy thử sử dụng os.path tham gia các yếu tố của con đường., Btw có bạn thử nó để thay đổi ProcFile để đọc từ người lao động ? python hellodjango/manage.py

Chỉnh sửa sau:

Cố gắng chạy này ba lệnh để làm cho Heroku thạc sĩ:

  • pip install -r ./requirements.txt

  • foreman start

  • heroku create mempy-demo --stac=cedar

  • git push Heroku chủ

Bây giờ kiểm tra một đơn giản 'Hello World':

$ curl mempy-demo.herokuapp.com 
+0

yea Tôi đã thử nó. – Zach

+0

Tôi cập nhật câu trả lời của tôi., Nó phải làm việc ngay bây giờ, bằng cách đặt masteroku master. –

0

Bạn có thể làm một cái gì đó như thế này để thay đổi các biến môi trường (ví dụ như thêm nó vào tập tin wsgi.py của bạn nếu đó là lỗi ở đâu có nguồn gốc):

os.environ["DJANGO_SETTINGS_MODULE"] = "myblog.settings"                 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myblog.settings") 
Các vấn đề liên quan