2013-02-21 26 views
10

Tôi tình cờ gặp this article và làm theo tất cả các bước. Nhưng pyDev sẽ không nhìn thấy phần mở rộng bình của tôi và đó là thực sự gây phiền nhiễu. Chỉ có một điều (và tôi nghĩ rằng đây là chìa khóa):Làm thế nào để làm cho eclipse/pydev vui mừng khi thấy các phần mở rộng của bình trên cửa sổ?

Touch /site-packages/flaskext/__init__.py

Touch là một unix util tôi nghĩ. Có tương đương với điều này trên Windows?

Trả lời

25

Eclipse sử dụng phân tích tĩnh mô-đun theo mặc định. flask.ext xây dựng danh sách nhập động một cách linh hoạt. Để buộc phân tích động bằng cách sử dụng trình bao Python thêm flask.ext vào danh sách nội trang cưỡng bức.

Đi tới Preferences -> PyDev -> Interpreters -> Python Interpreter. Chọn thông dịch viên của bạn, chuyển đến tab Forced Builtins. Nhấp vào New... và nhập flask.ext.

Điều này yêu cầu PyDev phân tích mạnh mô-đun thông qua trình bao.

Để biết thêm chi tiết, xem PyDev manual.

+0

Điều này có vẻ rất hứa hẹn. Trong thời gian đó, tôi chuyển sang PyCharm, vì vậy tôi không thể (và không muốn) tự mình thử nghiệm điều này. Tuy nhiên, tôi sẽ đánh dấu câu hỏi này là đã được giải quyết, vì bạn đang tham khảo tài liệu chính thức. – floqqi

+3

Điều này sửa lỗi Nhập khẩu chưa được giải quyết cho bất kỳ mô-đun flask.ext nào tôi đã cài đặt. Việc thêm các mô-đun Flask vào Python PATH KHÔNG sửa các Nhập khẩu Chưa được Giải quyết. –

+0

Điều này có vẻ đầy hứa hẹn, nhưng nó không hoạt động với tôi trong LiClipse 3.6.0 trên Mac OS X 10.11. Có thể là một lỗi trong PyDev khi được đóng gói trong LiClipse? –

0

touch sẽ tạo tệp trống nếu nó không tồn tại hoặc cập nhật thời gian sửa đổi của tệp nếu nó tồn tại.

Vì mục đích này, echo > /site-packages/flashext/__init__.py tại dòng lệnh là đủ. (Tệp sẽ không trống, nhưng chỉ chứa một dòng mới đơn giản tương đương ngữ nghĩa cho Python).

+0

Cảm ơn bạn, nhưng sau khi khôi phục trình thông dịch python của tôi trong nhật thực, vấn đề vẫn còn tồn tại .. – floqqi

1

Tôi cũng đang đấu tranh với vấn đề này và vấn đề dường như là cách Flask nhập khẩu các phần mở rộng. Nếu bạn mở tệp flask/ext/__init__.py, bạn sẽ thấy tệp này sử dụng trình nhập. Tôi không nghĩ rằng PyDev thích này nhiều, vì vậy tôi đã chỉnh sửa tập tin này với hàng nhập khẩu cố định:

import flask_login as login 
import flask_sqlalchemy as sqlalchemy 
import flask_wtf as wtf 

def setup(): 
    from ..exthook import ExtensionImporter 
    importer = ExtensionImporter(['flask_%s', 'flaskext.%s'], __name__) 
    importer.install() 


setup() 
del setup 

Tôi cũng phát hiện ra rằng Flask-SQLAlchemy nhập khẩu đã phá vỡ quá, nên thay vì làm db.Column như được giải thích trong tài liệu hướng dẫn, sử dụng trực tiếp nhập sqlalchemy, tức là from sqlalchemy import Column, ForeignKey

0

Nếu bạn có dự án của mình trong môi trường ảo và bạn muốn thêm dự án vào nhật thực để dự án sử dụng thư viện được cài đặt trên môi trường ảo, thì bạn nên làm theo các bước sau.

bước 1: giả sử đường dẫn tuyệt đối cho môi trường ảo của bạn là: C:\Users\sadegh\Desktop\flask_eclipse\fe\venv

The content of venv folder

đi đến window->preferences->PyDev->interpretors->Python Interpretor trong thư mục Scripts, có python.exe enter image description here đó là thông dịch viên python đã được gán cho môi trường ảo này. Tệp thực thi này sẽ là trình thông dịch python mới mà chúng ta sẽ thêm vào nhật thực.

bước 2: Đến window->preferences->PyDev->Interpreters->Python Interpreter enter image description here

Trong khung bên phải bạn sẽ thấy điều này: enter image description here

nhấp chuột vào nút mới thì cửa sổ này sẽ bật lên: enter image description here

viết bất cứ điều gì bạn muốn trong trường Interpreter Name và viết đường dẫn tuyệt đối của tệp python.exe được đề cập ở bước 1 trong Interpreter Executable lĩnh vực

sau khi nhấp OK này sẽ bật lên: enter image description here

chọn tất cả các mục rồi nhấn OK

step3: chọn người phiên dịch mới được thêm vào trong cửa sổ trên, sau đó ở khung bên dưới đi Forced Builtin và nhấp vào nút mới ở bên phải của ngăn bên dưới này.

enter image description here

và trong cửa sổ bật lên ghi flask.ext.

step4: tất cả mọi thứ được thiết lập bây giờ:

nếu bạn muốn bắt đầu một dự án mới: khi bạn đang tạo ra một mới PyDev Project chọn Interpreter mới mà chúng tôi tạo ra là Thông dịch viên của dự án này. enter image description here

nếu bạn muốn chuyển đổi một dự án hiện có để một dự án bình trên môi trường ảo của bạn bấm chuột phải vào dự án và đi đến tài sản và trong PyDev-Interpreter/Grammar thay đổi các Interpreter để người phiên dịch mới mà chúng tôi đã tạo ra.

lưu ý: Nếu bạn muốn thực để chạy các máy chủ cho bạn trong môi trường ảo mà bạn có thể chạy các máy chủ từ bên trong mã có chứa các ví dụ Flask() như thế này:

if __name__ == '__main__': #here i assume you have put this code in a file that  
    app.run() #contains variable "app", which contains the instance of #Flask(__main__) 
+0

Thao tác này sẽ thêm thông dịch viên toàn cầu cho tất cả các dự án, mặc dù thông dịch viên được đề cập sẽ là thông dịch viên cụ thể cho dự án. Có cách nào để thêm thông dịch viên để nó chỉ là dự án cụ thể không? – FluxIX