2016-03-22 11 views
0

Pymongo has some optional C extensions. Pip çalıştırıldığında bağımlılıkları varsa, kurulurlar; Aksi halde değil.C paketi ile bir pip paketinin oluşturulup oluşturulmadığını nasıl anlarım?

Belirli bir pip paketinin C uzantılarının sistem düzeyinde mi yoksa belirli bir virtualenv'de mi var olduğunu anlattıktan sonra nasıl anlarım?

Pymongo şu andaki endişem olsa da, keyfi paketler için bir yöntem varsa mutlu olurdum.

+0

Bunları içe aktarmaya çalışan bir python komut dosyası yazmaktan ne dersiniz, başarısız olursa '1' hata koduyla ya da başarılı olursa "0" hata koduyla mı yaşıyorsunuz? Sanal env'yi veya sistem düzeyinde içe aktarmayı test etmek için sistem yorumlayıcısını sınamak için virtualenv yorumlayıcı ile çalıştırın. Veya "python -c" import foob "2>/dev/null" gibi bir tek liner bile yapabilirsiniz. – Claudiu

cevap

0

daha zarif bir çözüm olabilir, ancak dosyalar pip ile makinenizde neresinde olduğunu ilk bulabilirsiniz:

[email protected]:~$ pip show pymongo 
--- 
Metadata-Version: 2.0 
Name: pymongo 
Version: 3.2.2 
Summary: Python driver for MongoDB <http://www.mongodb.org> 
Home-page: http://github.com/mongodb/mongo-python-driver 
Author: Bernie Hackett 
Author-email: [email protected] 
Installer: pip 
License: Apache License, Version 2.0 
Location: /opt/miniconda2/lib/python2.7/site-packages 
Requires: 
Classifiers: 
.... 

Ardından specifed dizine gidin ve herhangi derlenmiş olup olmadığını görebilirsiniz kütüphaneler:

[email protected]:~$ cd /opt/miniconda2/lib/python2.7/site-packages/pymongo 
[email protected]:/opt/miniconda2/lib/python2.7/site-packages/pymongo$ ls 
auth.py    database.py     monitoring.pyc   response.py    ssl_context.pyc 
auth.pyc   database.pyc     monitor.py    response.pyc   ssl_match_hostname.py 
bulk.py    errors.py      monitor.pyc   results.py    ssl_match_hostname.pyc 
bulk.pyc   errors.pyc     monotonic.py   results.pyc    ssl_support.py 
client_options.py helpers.py     monotonic.pyc   server_description.py ssl_support.pyc 
client_options.pyc helpers.pyc     network.py    server_description.pyc thread_util.py 
_cmessage.so  __init__.py     network.pyc   server.py    thread_util.pyc 
collection.py  __init__.pyc     operations.py   server.pyc    topology_description.py 
collection.pyc  ismaster.py     operations.pyc   server_selectors.py  topology_description.pyc 
command_cursor.py ismaster.pyc     periodic_executor.py server_selectors.pyc topology.py 
command_cursor.pyc message.py     periodic_executor.pyc server_type.py   topology.pyc 
common.py   message.pyc     pool.py    server_type.pyc   uri_parser.py 
common.pyc   mongo_client.py    pool.pyc    settings.py    uri_parser.pyc 
cursor_manager.py mongo_client.pyc    read_concern.py  settings.pyc   write_concern.py 
cursor_manager.pyc mongo_replica_set_client.py read_concern.pyc  son_manipulator.py  write_concern.pyc 
cursor.py   mongo_replica_set_client.pyc read_preferences.py son_manipulator.pyc 
cursor.pyc   monitoring.py     read_preferences.pyc ssl_context.py 

bir derlenmiş kütüphane görürseniz - bu durumda _cmessage.so yüzden bu, Linux kutusudur, ancak farklı platformlar farklı kurallara sahiptir - o zaman şansını en azından agains som derlendi olduğunu C uzantılarının e.