2017-10-16 28 views
5

Tôi đang cố gắng giải quyết sự khác biệt về hành vi giữa hai cài đặt python thường xác định và có cùng các gói pip python được cài đặt.Có thể pip liệt kê các bánh xe nhị phân của nó không?

Tôi nghi ngờ các tệp .so khác nhau. Có một lý do tại sao để xem nhị phân bánh xe nhị phân pip đã được cài đặt, và cho kiến ​​trúc nào?

Update -

% pip show Name: scipy Version: 1.0.0rc1 Summary: SciPy: Scientific Library for Python Home-page: https://www.scipy.org Author: SciPy Developers Author-email: [email protected] License: BSD Location: /usr/local/lib/python2.7/dist-packages Requires: numpy

Các gói phần mềm trên phụ thuộc vào những thứ như libopenblas đó phải được biên dịch. Tôi không chắc chắn nếu pip sử dụng cài đặt hệ thống, hoặc biên dịch BLAS trong khi cài đặt pip, hoặc được sử dụng như phiên bản biên dịch trước của BLAS cho một i386, hoặc i686 - ai biết được.

Các trường hợp trên, chúng tôi có:

/usr/local/lib/python2.7/dist-packages/scipy/.libs/libopenblasp-r0-39a31c03.2.18.so 

Tôi muốn xem những gói có sự khác biệt trong .sos cài đặt của họ trong các hệ thống khác biệt.

+0

sử dụng mã python: sử dụng "pip danh sách" lệnh (bắt nó đầu ra), sau đó đặt từng package_name đó vào lệnh "pip show" với "for", để hiển thị thông tin của họ. – DRPK

+0

'pip list' và' pip show 'là cách dễ nhất để kiểm tra nhanh chóng như là @DRPK, nhưng nếu bạn đang đào sâu vào các tệp riêng lẻ, bạn có thể thấy các gói site của bạn được cài đặt cho mỗi cá thể python. python IDLE hoặc từ CLI, sau đó 'import site'' site.getsitepackages() 'mà sau đó sẽ trả về một cái gì đó như' ['/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/ site-packages ','/usr/lib/site-python '] 'nơi bạn có thể xác minh các tập tin là như nhau, chỉ trong trường hợp một cái gì đó kỳ lạ đã xảy ra tại một và không phải là khác – stephen

Trả lời

4

Thông tin có ở đó, nhưng bạn sẽ phải tìm hiểu xung quanh trong dist-info và/hoặc egg-info thư mục con để tìm thấy.

  • Phân phối nhị phân bao gồm RECORD tệp trong thư mục con siêu dữ liệu của chúng.
  • Bản phân phối nguồn bao gồm tệp installed-files.txt trong thư mục con siêu dữ liệu của chúng.

Các tệp RECORD là các dòng csv (đường dẫn, băm, kích thước) như được ghi trong PEP-376. Các installed-files.txt cũ hơn từ một quả trứng chỉ là tên tập tin, và bạn sẽ phải stat những tập tin bằng tay.

Ví dụ đơn giản, tôi có bản phân phối nguồn và nhị phân của gói copyingmock có sẵn trên PyPI. Với sự phân phối nhị phân được cài đặt (pip install copyingmock):

$ pip show --files copyingmock 
Name: copyingmock 
Version: 0.1 
Summary: A subclass of MagicMock that copies the arguments 
Home-page: https://github.com/wimglenn/copyingmock 
Author: Wim Glenn 
Author-email: [email protected] 
License: MIT 
Location: /tmp/blah/venv/lib/python3.6/site-packages 
Requires: 
Files: 
    __pycache__/copyingmock.cpython-36.pyc 
    copyingmock-0.1.dist-info/DESCRIPTION.rst 
    copyingmock-0.1.dist-info/INSTALLER 
    copyingmock-0.1.dist-info/LICENSE.txt 
    copyingmock-0.1.dist-info/METADATA 
    copyingmock-0.1.dist-info/RECORD 
    copyingmock-0.1.dist-info/WHEEL 
    copyingmock-0.1.dist-info/metadata.json 
    copyingmock-0.1.dist-info/top_level.txt 
    copyingmock.py 
$ cat venv/lib/python3.6/site-packages/copyingmock-0.1.dist-info/RECORD 
copyingmock.py,sha256=DoLAuaS7KqGT87BIlD93G1M7q9bNWgHYu1m1TZP1D1g,345 
copyingmock-0.1.dist-info/DESCRIPTION.rst,sha256=L_0CS_8XNYgAVfq3tj3GZEYg_9vML9nDP-FUU37GIbs,1541 
copyingmock-0.1.dist-info/LICENSE.txt,sha256=sDdX5cBRRpk3rmZ8hbYEfAUIYRdDqrlXmChOUkqf62o,1066 
copyingmock-0.1.dist-info/METADATA,sha256=bKJ5RXwvj0rGrg22p4K91WiJoLM5MqLHYqlpWYWUhPU,2031 
copyingmock-0.1.dist-info/RECORD,, 
copyingmock-0.1.dist-info/WHEEL,sha256=5wvfB7GvgZAbKBSE9uX9Zbi6LCL-_KgezgHblXhCRnM,113 
copyingmock-0.1.dist-info/metadata.json,sha256=SLtuqq4tUGr0A2h4hQnZEdPIm_4MrvcunLzP-_1I7Qc,677 
copyingmock-0.1.dist-info/top_level.txt,sha256=X3FsY_0npOxR5rKvOJ-b2rdiNfSiIivwVKN4JgY7cac,12 
copyingmock-0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 
__pycache__/copyingmock.cpython-36.pyc,, 

Sau đó buộc phải cài đặt lại với sự phân bố nguồn (pip uninstall copyingmock và sau đó pip install --no-binary=copyingmock copyingmock):

$ pip show --files copyingmock 
Name: copyingmock 
Version: 0.1 
Summary: A subclass of MagicMock that copies the arguments 
Home-page: https://github.com/wimglenn/copyingmock 
Author: Wim Glenn 
Author-email: [email protected] 
License: MIT 
Location: /tmp/blah/venv/lib/python3.6/site-packages 
Requires: 
Files: 
    __pycache__/copyingmock.cpython-36.pyc 
    copyingmock-0.1-py3.6.egg-info/PKG-INFO 
    copyingmock-0.1-py3.6.egg-info/SOURCES.txt 
    copyingmock-0.1-py3.6.egg-info/dependency_links.txt 
    copyingmock-0.1-py3.6.egg-info/top_level.txt 
    copyingmock.py 
$ cat venv/lib/python3.6/site-packages/copyingmock-0.1-py3.6.egg-info/installed-files.txt 
../copyingmock.py 
../__pycache__/copyingmock.cpython-36.pyc 
dependency_links.txt 
PKG-INFO 
top_level.txt 
SOURCES.txt 
+0

Cảm ơn. '' 'pip show --files scipy | grep -e \\. so''' hãy để tôi tìm các .sos cho một gói duy nhất, chỉ cần một chút ngắn về thông tin như kiến ​​trúc được biên dịch, vv ... có thể cho thấy sự khác biệt. Tôi có thể thử checksumming các tập tin .so, nhưng tôi nghi ngờ và nơi biên soạn với thông tin gỡ lỗi với làm cho điều này vô ích. – user48956

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