Trong phiên bản Ubuntu/Debian mới hơn, libpython2.7.so
là dưới /usr/lib/i386-linux-gnu/libpython2.7.so
hoặc /usr/lib/x86_64-linux-gnu/libpython2.7.so
, v.v. Trước đó, chúng có thể được tìm thấy trong /usr/lib/libpython2.7.so
, bất kể kiến trúc. Tôi chưa kiểm tra các bản phân phối khác. Làm cách nào để tìm đường dẫn của libpython2.7.so
bằng python?Phân phối đường dẫn libpython độc lập
Trả lời
Tôi giả sử bạn đang tìm cách liên kết với tệp này. Python thường được cài đặt với thông tin pkgconfig
để giúp biên dịch chống lại nó. Cụ thể đối với tệp .so
, bạn nên sử dụng pkg-config --libs python-2.7
. Từ Python:
import subprocess
subprocess.check_output(["pkg-config", "--libs", "python-2.7"])
Nếu cờ chỉ được hiển thị là -lpython2.7
, bạn có thể muốn xem xét việc đọc /etc/ld.so.conf
để xem vị trí mặc định trong đó mối liên kết tìm kiếm các thư viện của mình.
Sử dụng pkg-config
không phải là lựa chọn tốt nhất - nó sẽ không phân biệt giữa các cài đặt khác nhau của Python, chỉ trả lại cài đặt hệ thống. Bạn nên sử dụng Python thực thi để khám phá vị trí của libpythonX.Y.so
.
Từ bên trong Python:
from distutils import sysconfig;
print sysconfig.get_config_var("LIBDIR")
Hoặc bên trong một Makefile:
PYTHON_LIBDIR:=$(shell python -c 'from distutils import sysconfig; print sysconfig.get_config_var("LIBDIR")')
này sẽ khám phá ra các vị trí từ bất cứ điều gì thực thi Python là lần đầu tiên trong $PATH
và do đó sẽ làm việc nếu có nhiều cài đặt Python trên hệ thống.
Tín dụng cho Niall Fitzgerald để chỉ ra điều này.
Nó cung cấp cho tôi '/ usr/lib', trong khi nó nằm trong'/usr/lib/x86_64-linux-gnu' –
không hoạt động đối với tôi. vấn đề tương tự như Marco Sulla đã chỉ ra. –
Cùng một vấn đề. :(Thực sự muốn có một cách để làm điều này. – Alec
- 1. Bộ lập lịch Celery được phân phối
- 2. Kiến trúc CPU Độc lập P/Gọi: DllName hoặc đường dẫn có thể là "động" không?
- 3. Java phân chia đường dẫn ..?
- 4. Làm cách nào để xuất Blueprint Apiary thành PDF, HTML độc lập hoặc tương tự "có thể phân phối"?
- 5. Java: Làm thế nào để xây dựng các bản phân phối độc lập của các dự án dựa trên Maven?
- 6. Thiết lập DTAP thích hợp để Phân phối Nội dung
- 7. Độc lập Bytecode Verifier
- 8. git - biến đường dẫn thiết lập
- 9. Thiết lập Vợt Geiser Emacs Đường dẫn
- 10. Thiết lập Eclipse với Đường dẫn JRE
- 11. Đường dẫn phân tích cú pháp trong đường ray
- 12. Chuỗi công cụ độc lập là gì?
- 13. Phân loại đường dẫn phân cấp trong python
- 14. Chuyển đổi phân phối đồng đều thành phân phối chuẩn
- 15. cython - distutils vs cmake: liên kết với libpython?
- 16. Vẽ các bản phân phối bình thường
- 17. đường dẫn trăn và thứ tự nhập
- 18. Tên tệp phân tích cú pháp và đường dẫn từ đường dẫn đầy đủ
- 19. Đường dẫn XML - không phân biệt chữ hoa chữ thường
- 20. đường after_sign_out độc đáo với nhiều mô hình với lập mưu và đường ray
- 21. Lỗi Libpython khi xây dựng YouCompleteMe
- 22. Tạo bản sao độc lập của UIBezierPath?
- 23. Lớp phân phối MPI
- 24. Kiểm tra Phân phối
- 25. nhận phân phối lỗiNotFound
- 26. Hệ thống phân phối Java
- 27. Độ phân giải biểu tượng trong trình phân tích cú pháp IntelliJ độc lập
- 28. Phân phối lại ứng dụng Python GUI
- 29. Thiết lập các ứng dụng độc lập cygwin
- 30. Trong Pacman, các con ma có chọn con đường độc lập để tìm pacman không?
Bạn đang tìm kiếm 'định vị libpython' hay cái gì khác? – janos
'ldd/usr/local/bin/python' của bạn hiển thị cho bạn những gì? – Arovit
'xác định vị trí libpython' tìm thấy khá nhiều hơn chỉ là tập tin duy nhất này, và tôi muốn lập trình tìm đường dẫn và cung cấp nó cho cmake. 'ldd/usr/local/bin/python' cho' Không có tập tin hoặc thư mục', và 'ldd/usr/bin/python' cung cấp một số tệp thư viện, nhưng' libpython2.7.so' không phải là một trong số chúng. – Psirus