Câu trả lời dễ nhất Tôi biết là: cấu trúc dự án của bạn để bạn có thể thay đổi một trong số chúng và lưu giữ các thay đổi để bạn có thể áp dụng nó cho các bản phát hành trong tương lai.
Đối với dự án của tôi, tôi muốn có:
/myproject
/lib
/app1
/app2
/app3
Sau đó thêm một cách rõ ràng/lib vào đường dẫn trong setup.py
import os
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
import sys
lib_dir = os.path.join(PROJECT_PATH, 'lib')
if lib_dir not in sys.path[:4]:
sys.path.insert(1, os.path.join(PROJECT_PATH, 'lib'))
Tôi có lẽ nhiều khả năng hơn mức trung bình để có một ứng dụng, cài đặt nó, sau đó thay đổi 10% của nó để làm việc chính xác như thế nào tôi muốn.
Lợi thế của việc này là: 1) hầu hết các phụ thuộc gửi mã và được theo dõi trong GIT 2) không có cơ hội thay đổi hệ thống bất ngờ gây ra lỗi trong ứng dụng nếu bạn đang chạy nhiều ứng dụng từ cùng một máy và 3) Dễ dàng thay đổi, với lịch sử sửa đổi, bất kỳ và tất cả mọi thứ trong ứng dụng.
Không có chim bồ câu quá sâu vào các lệnh quản lý của miền nam và không bao giờ sử dụng django_pdb, vấn đề cụ thể của bạn có thể không được giải quyết bằng cách "tạo bản sao cục bộ và đổi tên một trong số chúng", nhưng tôi chia sẻ trong trường hợp có thể.
Tại sao bạn đổi tên các lệnh quản lý hiện có? Làm ơn đừng làm thế. Vui lòng cung cấp tên duy nhất cho lệnh của bạn và tránh sự cố này. –
Tôi nghĩ rằng đó là một điều khá hợp lý muốn làm cho bối cảnh. (Thêm các tùy chọn --pdb vào các lệnh kiểm tra hiện có và các lệnh máy chủ lưu trữ) Các ứng dụng như 'south' và' django.contrib.staticfiles' thực hiện chính xác điều đó, vì vậy tôi không được bán trên một tấm chăn "không làm điều đó". –
@SLOTT nếu mã hoàn toàn trong kiểm soát của nhà phát triển, đây là một câu hỏi rất ngớ ngẩn - bạn chỉ cần đổi tên một trong số chúng. Tôi nghĩ anh ấy đang cố gắng yêu cầu phải làm gì khi bạn sử dụng hai ứng dụng cộng đồng mà cả hai đều cung cấp các lệnh "load_sample_data". – Ted