Có cách nào để cho Python biết về các vị trí bổ sung site-packages
mà không sửa đổi các tập lệnh hiện có không?Định cấu hình Python để sử dụng các vị trí bổ sung cho các gói trang web
Trên máy chủ CentOS 5.5 của tôi, tôi cài đặt Python 2.7 được cài đặt trong /opt/python2.7.2
và có thư mục site-packages
tại /opt/python2.7.2/lib/python2.7/site-packages
.
Lý do cho điều này là tôi không muốn làm phiền bản cài đặt Python 2.4 hiện có được phân phối với bản phân phối 5,5.
Tuy nhiên ứng dụng Python của bên thứ ba cũng đã thêm một thư mục site-packages
tại: /usr/local/lib/python2.7/site-packages
và được cài đặt tại vị trí đó.
Đây là một phần lỗi của tôi vì tôi không sửa đổi PREFIX
trong ứng dụng Makefile
trước khi cài đặt, tuy nhiên hiện tại tôi không thể làm gì nhiều.
Tôi biết rằng tôi có thể làm điều này:
import sys; sys.path.insert(0, "/usr/local/lib/python2.7/site-packages")
Tuy nhiên nó sẽ liên quan đến tôi theo dõi xuống mỗi kịch bản và thêm ở trên mà không phải là lý tưởng nên có thể cập nhật trong tương lai.
Để làm được việc này tôi đã tạo ra một liên kết tượng trưng trong /opt/python2.7.2/lib/python2.7/site-packages
đến vị trí của ứng dụng của bên thứ ba này:
ln -sf /usr/local/lib/python2.7/site-packages/theapp /opt/python2.7.2/lib/python2.7/site-packages/theapp
Điều này dường như làm việc tốt nhưng tôi tự hỏi nếu có một cách tốt hơn?
Điều này làm việc một điều trị, tuy nhiên tôi quyết định bit viên đạn và sửa chữa triển khai. Nhưng cảm ơn anyway, hữu ích để biết cho tương lai. – Kev
Điều này thêm đường dẫn đến * đầu * của đường dẫn python. Điều gì sẽ xảy ra nếu bạn muốn các gói trang web tùy chỉnh của mình xuất hiện trước? Tôi đã thử nghiệm với một tập tin sitecustomize.py với một số thành công, nhưng có vẻ là trường hợp cạnh mà chỉ đơn giản là thao tác đường dẫn python là không đủ. – wryfi