Python импортирует модуль:как отследить его происхождение PYTHONPATH, sys, os

StackOverflow https://stackoverflow.com//questions/9657690

  •  11-12-2019
  •  | 
  •  

Вопрос

модуль Nosetests запускается повсюду на моем компьютере (он не должен запускаться только в нескольких указанных местах).Я предполагаю, что это потому, что я случайно добавил модуль носовых тестов в PYTHONPATH, поместив его непосредственно в пакеты dist-packages или site-packages или сообщив Python, чтобы он каждый раз искал его постоянно.

Я знаком с несколькими командами, такими как find, import os, import sys и PYTHONPATH, но я не могу найти способ отследить виновный каталог, который позволяет этому произойти.

что-то вроде

>>> find . -name "*nosetests"* -print

любая помощь будет отличной.

Это было полезно?

Решение

Для решения вашей проблемы достаточно изучить nosetests.__file__, как предложил @Adam.Но есть более общий способ:тот inspect модуль, который также работает для классов и других объектов, у которых нет __file__ атрибут.

import inspect, nosetests
print inspect.getsourcefile(nosetests)

Другие советы

Давайте посмотрим на этот пример:

>>> import itertools
>>> print itertools.__file__
/usr/lib/python2.7/lib-dynload/itertools.so
>>> import string
>>> print string.__file__
/usr/lib/python2.7/string.pyc
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top