2013-02-09 52 views
20

Tôi đang chạy đoạn mã saupython lỗi bình nhập khẩu

from flask import Flask 
app = Flask(__name__) 
@app.route("/") 
def hello(): 
    return "Hello World!" 
if __name__ == "__main__": 
    app.run(host='0.0.0.0', port=80, debug=True) 

và nhận được lỗi sau

Traceback (most recent call last): 
    File "test.py", line 1, in <module> 
    from flask import Flask 
    File "/home/pi/programs/flask.py", line 1, in <module> 
    from flask import Flask 
ImportError: cannot import name Flask 

Tôi đã thử cài đặt bình thông qua các phương pháp khác nhau, nhưng vẫn còn những vấn đề vẫn còn

Ngoài ra, là có bất kỳ thay thế cho bình ???

+0

Cài đặt nó bằng 'pip install Flask'. Bạn đang chạy hệ điều hành nào? – Blender

+1

Chúng tôi sẽ cần thêm thông tin về cách bạn đã cố gắng lắp đặt bình. Những gì, chính xác là những "phương pháp khác nhau" bạn đã cố gắng? Hệ điều hành của bạn là gì? vv –

+1

Có/home/pi/programs trong pythonpath hoặc thư mục làm việc hiện tại của bạn không?Kiểm tra nó với echo "$ PYTHONPATH" –

Trả lời

10

Chỉ cần chạy apt-get install python-flask

+0

có bình để làm việc: D nhờ –

+0

những gì ip nên cho trong 'app.run (host = '0.0.0.0', port = 80, debug = True)' tôi nhận được lỗi sau đây ** * Chạy trên http://0.0.0.0:80/ Traceback (cuộc gọi gần đây nhất): Tệp "test.py", dòng 14, trong app.run (host = '0.0.0.0', port = 80, debug = True) run_simple (máy chủ, cổng, tự, ** tùy chọn) Tệp "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", dòng 613, trong run_simple test_socket. bind ((tên máy chủ, cổng)) Tệp "/usr/lib/python2.7/socket.py", dòng 224, trong meth trả về getattr (self._soc k, name) (* args) socket.error: [Errno 98] Địa chỉ đã được sử dụng ** –

+0

0.0.0.0 là tốt, nó sẽ lắng nghe tất cả các giao diện. Cổng không ổn vì bạn cần phải root để sử dụng. Để thử nghiệm, mọi người thường sử dụng 8080. – LtWorf

84

Tôi chạy vào lỗi này bởi vì tôi đặt tên cho tập tin thử nghiệm như flask.py và cố gắng chạy nó! Nó tạo ra xung đột không gian tên với mô-đun flask.py thực sự!

Xóa các tập tin địa phương của bạn mà bạn đặt tên flask.py và flask.pyc tương ứng

Hy vọng rằng sẽ giúp.

+4

CÓ, đúng vậy. Sai lầm hồng y này một lần nữa ... upvote. – Alex

+0

tạ ơn chúa, tôi đã kiên nhẫn để di chuyển xuống và thấy lỗi này ...... –

+0

Đây là sai lầm tôi đã thực hiện. Cảm ơn! –

8

Chỉ cần đổi tên flask.py tập tin cũng xóa flask.pyc tập tin

0

chính xác khi nào chúng ta tạo ra tên tập tin như flask.py và sau đó thực hiện nó lần đầu tiên nó sẽ thực hiện và cùng một lúc khuôn khổ tạo ra một tập tin gọi là flask.pyc. Bây giờ ngừng quá trình và bắt đầu nó một lần nữa nó sẽ ném lỗi này thay vì nhìn vào tập tin khuôn khổ thực tế khuôn khổ nó đang tìm kiếm một trong những bạn tạo ra. Để giải quyết vấn đề này Vào thư mục bạn đã tạo flask.py và xóa flask.pyc và sau đó đổi tên flask.py thành một số test_1.py ..save nó và thực hiện nó. Bạn sẽ không thấy lỗi nào.

11

Lý do là tên tệp python của bạn là bình.

+2

Bạn có thể cung cấp thêm thông tin để giải quyết vấn đề không? –

+0

Bạn đã khiến tôi tránh được thời gian gỡ lỗi lâu, cảm ơn ... – Nikkolasg

0

Restart môi trường ảo

$ virtualenv flask 

Into dir bình chạy

$source ./bin/activate 

Cài đặt mô-đun python lại

$pip install "module" 
0

tôi phải đối mặt với cùng một vấn đề và nó làm việc một lần tôi đã xóa .pyc tập tin và đổi tên.

0

Tôi gặp vấn đề tương tự. Rõ ràng bạn không thể đặt tên tệp của bạn là socket.py một trong hai.

Các vấn đề liên quan