Tôi sử dụng Jedi để tự động hoàn thành bằng Python trong Emacs, nhưng nó không phụ thuộc vào mã của tôi vì vậy tôi không muốn đặt nó trong số requirements.txt
. (Nhà phát triển khác có thể không sử dụng một plugin biên tập Jedi, và nó chắc chắn không cần thiết khi tôi triển khai đến Heroku.)Virtualenv có thể được thực hiện để quay trở lại gói người dùng thay vì gói hệ thống không?
Nhưng Jedi phải có sẵn từ virtualenv tôi để chức năng, tức là nếu tôi không thể
import jedi
nó không hoạt động.
Có cách nào tốt để cài đặt Jedi người dùng trên toàn cầu sao cho nó có sẵn trong tất cả các virtualenv của tôi không?
tôi nghĩ những gì tôi muốn là để
- cài đặt Jedi vào
~/.local/lib/python2.7/site-packages/
vớipip
's--user
flag, sau đó đến - tạo virtualenv của tôi bằng cách sử dụng tương đương với the
--system-site-packages
flag, nhưng đối với gói dùng thay vì gói hệ thống .
Cách giải quyết hiện tại của tôi là pip install jedi
trong mỗi virtualenv của tôi. Sau đó, khi tôi thêm các phụ thuộc mới, tôi pip install foo
, pip freeze > requirements.txt
, sau đó xóa thủ công jedi
và một vài thứ khác từ tệp trước khi cam kết. Rõ ràng, đây là thời gian và dễ bị lỗi.
Có ai có giải pháp tốt hơn không?
Tại sao bạn không cài đặt trong gói trang web toàn cầu? Nó cũng sẽ giúp để biết được plugin Jedi cho Emacs bạn đang sử dụng. –
@DaveHalter, tôi đang sử dụng ['emacs-jedi'] (https://github.com/tkf/emacs-jedi) bị tấn công [qua MELPA] (https://github.com/milkypostman/melpa/blob/ master/recipes/jedi). Tôi không cài đặt Jedi trên toàn cầu và rơi trở lại đó bởi vì tôi không muốn virtualenvs của tôi nhìn thấy bất kỳ của rất nhiều các gói khác trên toàn cầu mà tôi đã cài đặt ... Nếu họ là khép kín tôi có thể tự tin hơn rằng tôi có tất cả các phụ thuộc của tôi được liệt kê trong 'requirements.txt'. – Chris