2017-07-24 3 views
1

J'ai installé des paquets avec pip dans Ubuntu. Cependant, je veux changer une partie du code installé de ces paquets. Dans Windows est facile de le faire, à partir de Pycharm en utilisant les liens fournis. Comment puis-je localiser le code source à partir des paquets et apporter des modifications? Mon code d'importation:Localiser le code source des paquets d'installation pip dans Ubuntu

from metric_learn import LSML_Supervised 
+0

Vous pouvez importer le package et puis exécutez 'package .__ file__' pour obtenir l'emplacement. – slallum

Répondre

2

D'une manière générale, les modules et les paquets ont un attribut __file__ que vous pouvez utiliser pour savoir où ils ont été chargés à partir de:

>>> import jinja2 
>>> jinja2.__file__ 
'/usr/local/anaconda3/envs/felix_backend/lib/python3.6/site-packages/jinja2/__init__.py' 
+0

Mon code provient de l'importation de metric_learn LSML_Supervised. Lorsque j'essaie d'imprimer LSML_Supervised, l'attribut

+0

__file__ ne fonctionne pas pour moi: AttributeError: l'objet type 'LSML_Supervised' n'a pas d'attribut '__file__' –

+1

'metric_learn .__ file__' – phd

2

site-packages est le répertoire cible de python construit manuellement paquets. Lorsque vous construisez et installez des paquets python depuis la source (en utilisant distutils, probablement en exécutant python setup.py install), vous trouverez par défaut les modules installés dans site-pacakges.

>>> import site; site.getsitepackages() 
['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages'] 

Si vous doutez vraiment emplacement par défaut puis,

>>> import django 
>>> print django.__path__ 
['/Library/Python/2.7/site-packages/django'] 
+0

Mon code est le suivant à partir de metric_learn import LSML_Supervised. Je ne sais pas ce que je devrais avoir pour __path__ –

+0

Il semble que l'attribut __path__ n'existe pas dans python2.7 –