Cách thêm thư viện python bên thứ ba trong Google App Engine, không được Google cung cấp? Tôi đang cố gắng sử dụng BeautifulSoup trong Google App Engine và không thể làm như vậy. Nhưng câu hỏi của tôi là cho bất kỳ thư viện nào tôi muốn sử dụng trong Google App Engine.Làm cách nào để đưa thư viện Python của bên thứ ba vào Google App Engine?
Trả lời
Thực ra tôi nghĩ rằng this answer phù hợp hơn ở đây.
Nếu bạn muốn sử dụng thư viện của bên thứ ba không được bao gồm trong this list, thì bạn sẽ phải thêm chúng theo cách thủ công.
Để bao gồm bất kỳ thư viện nào khác theo cách thủ công, bạn phải đặt chúng trong thư mục có thời lượng app.yaml
. Vì vậy, ví dụ nếu bạn có cấu trúc sau:
hello
├── libs
│ └── bs4
├── hello.py
└── app.yaml
sau đó trong bạn hello.py
bạn cần phải đặt hai dòng sau vào đầu file:
import sys
sys.path.insert(0, 'libs')
Sau khi làm điều đó bạn sẽ có thể để sử dụng bất kỳ thư viện của bên thứ ba nào bạn sẽ đặt trong thư mục libs
đó.
Ví dụ:
from bs4 import BeautifulSoup
Không làm cho nó hoạt động sau khi di chuyển nó sang libs –
xấu của tôi, cuối cùng cũng làm việc. Cảm ơn –
Tôi vẫn gặp sự cố với vấn đề này sau khi làm theo hướng dẫn. Có gì thay đổi với GAE không? –
Chỉ cần đặt Beautifulsoup vào thư mục gốc của dự án và tải lên tất cả
Tôi có thể đặt nó trong một số thư mục cụ thể như - 'lib'? –
có thao tác sys.path hoặc sử dụng mô-đun trang web như trong 'site.addsitedir ('lib') –
Bạn chỉ cần sao chép thư mục chứa thư viện bạn muốn sử dụng vào dự án công cụ ứng dụng của mình.
Sau đó, khi bạn triển khai nó được tải lên với ứng dụng của bạn và có sẵn để sử dụng.
EDIT: Jesse's answer là cách tôi hiện thực hiện việc này. Vì vậy, làm điều đó!
Cách nó làm việc ở đây là:
import sys
# sys.path.insert(0, 'libs') #"Old" way, not working for me.
sys.path.append(os.path.join(os.path.dirname(__file__), "libs")) # This works!
Sau đó, nhập khẩu thông thường:
from bs4 import BeautifulSoup
Google đã cung cấp một cách ghi nhận cho bao gồm của bên thứ ba thư viện trong dự án GAE của bạn.
Xem "Adding Third-party Packages to the Application" section of the Libraries in Python 2.7 docs.
Nếu bạn muốn bao gồm các gói bên thứ ba tinh khiết-python bổ sung, bạn có thể thực hiện việc này bằng cách thiết lập tính năng bán hàng. Việc cung cấp cho phép bạn cài đặt các gói vào một thư mục con của dự án của bạn và đưa chúng vào trong mã của bạn. Để sử dụng vendoring, hãy tạo (hoặc sửa đổi) appengine_config.py trong thư mục gốc của dự án của bạn.
from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')
Và sau đó chỉ cần đặt tất cả các mã nguồn libs trong ô lib
dir
> pip install beautifulsoup4 -t lib
Vì vậy, cấu trúc thư mục dự án của bạn trông như thế này:
project
- lib
- bs4
- your_code.py
này sẽ cho phép bạn tệp nguồn của dự án để nhập các gói/mô-đun libs như thể chúng được thêm vào PYTHON_PATH
của bạn. Ví dụ:
# file: your_code.py
import bs4 # no need for 'from lib import bs4'
# do stuff with bs4...
Bạn cũng có thể dễ dàng cài đặt tất cả mọi thứ từ một tập tin requirements.txt bằng cách thực hiện lệnh sau
> pip install -t lib -r requirements.txt
Câu trả lời này có vẻ tốt hơn sau đó câu trả lời được chấp nhận. Cảm ơn Jesse! –
điều này làm việc cho tôi trong một thời gian dài, nhưng chỉ bắt đầu thất bại một cách không thể giải thích được. Tôi hiện đang nhận được 'virtualenv: không thể truy cập lib: Không có thư mục ảo hoặc trang web ảo' – bgenchel
Tôi đang nhận được cùng một điều ngay bây giờ. Kỳ dị. –
pip cài đặt -t package_name lib
lib: sự vị trí cho thư viện của bên thứ ba
Sau đó, bạn nên sử dụng gói này như một thư viện thông thường mà bạn sử dụng từ ipython hoặc terminal.
- 1. Làm cách nào để thêm thư viện của bên thứ ba vào dự án Talend?
- 2. Google App Engine có thể sử dụng máy chủ SMTP của bên thứ ba không?
- 3. Làm cách nào/ở đâu để gửi thư viện của bên thứ ba bằng .NET DLL?
- 4. Cách đưa các thư viện của bên thứ 3 vào CodeIgniter?
- 5. Làm cách nào để ngăn thư viện của bên thứ ba hiển thị MessageBox?
- 6. Google App Engine | Python | APP.YAML
- 7. iPhone đăng nhập vào Google App Engine
- 8. Cách tốt nhất để tích hợp thư viện của bên thứ ba trong Android studio
- 9. tất cả các gói/thư viện python nằm trong Google App Engine là gì?
- 10. GOPATH thích hợp để bao gồm thư viện App Engine từ SDK App Engine?
- 11. Thêm thư viện của bên thứ ba vào một plugin eclipse
- 12. Sử dụng thư viện python Yêu cầu trong Google App Engine
- 13. Oauth + Aeoid + Python + Google App Engine + Tài liệu Google
- 14. Làm cách nào để nhập lib của bên thứ ba vào git?
- 15. Cách liên kết các thư viện của bên thứ ba trong tác vụ javadoc của Ant
- 16. Cách liên kết các thư viện của bên thứ ba đúng cách trong iOS
- 17. Email của Google App Engine Đi tới thư mục SPAM
- 18. Google-app-engine NDB
- 19. Làm cách nào để đưa thư viện bên ngoài vào Zend Framework 2?
- 20. Tệp Maven POM để cài đặt nhiều thư viện thương mại của bên thứ ba
- 21. Làm cách nào để sử dụng thư viện của bên thứ 3 trong thủy tinh?
- 22. Cách xử lý xóa trong Google App Engine (Python)
- 23. mlpy, numpy, scipy trên Google App Engine
- 24. Làm cách nào để mô phỏng "các lớp" trong JavaScript? (có hoặc không có thư viện của bên thứ ba)
- 25. Làm cách nào để tạo một dịch vụ REST bằng Google App Engine và Python?
- 26. Google App Engine hoặc Django?
- 27. Không thể tìm thấy thư viện PIL của Python.Google App Engine
- 28. Làm cách nào để ghi vào bảng điều khiển trong Google App Engine?
- 29. Sử dụng Python NLTK (2.0b5) trên Google App Engine
- 30. Cách quản lý thư viện của bên thứ ba trong dự án đa cấu hình
bản sao có thể có của [Làm cách nào để quản lý thư viện Python của bên thứ ba bằng Google App Engine? (virtualenv? pip?)] (http://stackoverflow.com/questions/4863557/how-do-i-manage-third-party-python-libraries-with-google-app-engine-virtualenv) – Wernight