2011-09-07 12 views
5

đó là một vài tháng tôi đã bắt đầu phát triển bằng Python - có bản thân mình là nền C# và Java. Tôi hiện đang làm việc trên 2 ứng dụng python/appengine khác nhau, và thường xảy ra trong những trường hợp đó, cả hai ứng dụng đều dùng chung mã - vì vậy tôi muốn cấu trúc lại và di chuyển mã chung/chung vào một nơi được chia sẻ.Tham khảo một thư viện bên ngoài trong một dự án appengine Python, sử dụng Pydev/Eclipse

Trong Java hoặc C#, tôi chỉ cần tạo một dự án thư viện mới, di chuyển mã vào dự án mới và thêm tham chiếu vào thư viện từ các dự án chính.

Tôi đã thử tương tự trong Python, nhưng tôi không thể làm cho nó hoạt động.

Tôi đang sử dụng Eclipse với plugin Pydev.

tôi đã tạo ra một dự án Pydev mới, chuyển mã, và cố gắng:

  • tham khảo các dự án thư viện từ các dự án chính (sử dụng Project Properties -> Tài liệu tham khảo dự án)
  • thêm thư viện thư mục src vào các dự án chính (trong trường hợp này tôi có lỗi - tôi cho rằng không thể rời khỏi ranh giới dự án khi thêm thư mục nguồn hiện có)
  • thêm làm thư viện bên ngoài (tương tự như thư viện google) , sử dụng Thuộc tính -> Thư viện bên ngoài)
  • nhập như liên kết (từ Import -> File System và tạo điều kiện cho "Tạo liên kết trong không gian làm việc")

Trong mọi trường hợp tôi có thể tham khảo mã thư viện trong khi đang phát triển, nhưng khi tôi bắt đầu gỡ lỗi, sự phát triển appengine máy chủ ném một ngoại lệ vì nó không thể tìm thấy những gì tôi đã chuyển vào một dự án thư viện riêng biệt.

Tất nhiên là tôi đã tìm kiếm một giải pháp rất nhiều, nhưng có vẻ như không ai đã trải qua cùng một vấn đề - hoặc có lẽ không ai không cần phải làm như vậy :)

Giải pháp gần nhất tôi đã có thể tìm thấy là thêm một kịch bản kiến ​​để nén các nguồn thư viện và sao chép trong dự án đích - nhưng cách gỡ lỗi này là một nỗi đau, vì tôi không thể bước vào mã thư viện.

Bất kỳ đề xuất nào?

Không cần phải nói, các giải pháp đề xuất phải đưa vào tài khoản rằng mã thư viện phải được bao gồm trong quá trình tải lên để AppEngine ...

Cảm ơn

Trả lời

4

Các dev_appserver và môi trường sản xuất không có bất kỳ khái niệm về dự án hoặc thư viện nào, vì vậy bạn cần phải cấu trúc ứng dụng của mình để tất cả các thư viện cần thiết đều nằm trong thư mục gốc của ứng dụng. Cách dễ nhất để làm điều này, thông thường, là liên kết chúng với tư cách là thư mục con, hoặc trường hợp xấu nhất, để sao chép chúng (hoặc, sử dụng điều khiển phiên bản, biến chúng thành kho phụ). Làm thế nào để ánh xạ tới các hoạt động trong IDE của bạn phụ thuộc vào IDE, nhưng nói chung, có thể dễ dàng nhất để ứng dụng có cấu trúc khi bạn cần trên đĩa và làm việc ngược lại để cài đặt IDE theo cách bạn muốn nó.

+0

Cảm ơn Nick - đã làm theo lời khuyên của bạn bằng cách di chuyển mã vào thư mục src, sau đó thêm vào một kho lưu trữ svn riêng biệt. Bây giờ tôi chỉ cần nhập nó vào dự án khác và tôi sẽ ổn thôi. – Antonio