2014-04-15 14 views
26

Tôi đã cài đặt một số gói thông qua pip install something. Tôi muốn chỉnh sửa mã nguồn cho gói something. Nó ở đâu (trên ubuntu 12.04) và làm cách nào để tải lại mỗi khi tôi chỉnh sửa mã nguồn và chạy nó?Python: cách chỉnh sửa gói đã cài đặt?

Hiện tại tôi đang chỉnh sửa mã nguồn, và sau đó chạy python setup.py một lần nữa và một lần nữa, điều này hóa ra khá phức tạp.

+0

'dpkg-query -L 'sau đó chỉnh sửa các tập tin? –

+1

Ubuntu Generic (và tôi cũng mong đợi các phiên bản mới hơn) cài đặt các gói pip vào /usr/local/lib/python2.7/dist-packages và các gói apt tới /usr/lib/python2.7/dist-packages –

Trả lời

4

Bạn có thể chỉnh sửa các tệp được cài đặt trong /usr/local/lib/python2.7/dist-packages/. Lưu ý rằng bạn sẽ phải sử dụng sudo hoặc trở thành root. Tùy chọn tốt hơn là sử dụng virtual environment để bạn phát triển. Sau đó, bạn có thể chỉnh sửa các tệp được cài đặt với các quyền của bạn bên trong môi trường ảo của bạn.

+1

Tôi đang sử dụng mkvirtualenv, với tùy chọn -no-site-packages, cài đặt pip và cài đặt 'something'. tuy nhiên tôi không thấy nơi nó cài đặt tệp bên trong virtualenv mà tôi có thể chỉnh sửa – KJW

23

Trên thực tế, bạn không bao giờ nên chỉnh sửa gói đã cài đặt, thay vào đó bạn nên cài đặt phiên bản gói được chia nhỏ.

Nếu bạn cần phải chỉnh sửa mã thường xuyên, bạn có tốt hơn không cài đặt gói qua pip install something và chỉnh sửa mã trong '.../site_packages/...'

Thay vào đó bạn nên đặt mã nguồn dưới một thư mục phát triển và cài đặt nó với

python setup.py develop 
# or 
pip install -e path/to/SomePackage 
# Or use a vcs at the first place 
$ pip install -e git+https://github.com/lakshmivyas/hyde.git#egg=hyde 

Đặt các thay đổi của bạn trong hệ thống điều khiển phiên bản và yêu cầu pip cài đặt nó một cách rõ ràng.

tham khảo: Edit mode

+3

Tôi đã cài đặt nó bằng cách sử dụng 'pip install -e/path/SomePackage /'. Tôi điều hướng bên trong thư mục '/ src /' của thư mục này và chỉnh sửa một tệp. Tuy nhiên khi tôi chạy 'SomePackage' từ thiết bị đầu cuối nó không phản ánh sự thay đổi này. – KJW

+0

'/ src /' là gì? –

+0

là nơi mã nguồn được đặt, nó có các tệp '.py' mà tôi đã chỉnh sửa. – KJW

Các vấn đề liên quan