numpy
2 つの異なる方法でライブラリをインポートしました。from numpy.random import mtrand
をいじった後の最初と2回目sys.path
。
ただし、これら 2 つのモジュール インポートの出力はまったく異なります。
>>> from numpy.random import mtrand
>>> dir(mtrand)
['RandomState', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__test__', '_rand', 'beta', 'binomial', 'bytes', 'chisquare', 'dirichlet', 'exponential', 'f', 'gamma', 'geometric', 'get_state', 'gumbel', 'hypergeometric', 'laplace', 'logistic', 'lognormal', 'logseries', 'multinomial', 'multivariate_normal', 'negative_binomial', 'noncentral_chisquare', 'noncentral_f', 'normal', 'np', 'pareto', 'permutation', 'poisson', 'power', 'rand', 'randint', 'randn', 'random_integers', 'random_sample', 'rayleigh', 'seed', 'set_state', 'shuffle', 'standard_cauchy', 'standard_exponential', 'standard_gamma', 'standard_normal', 'standard_t', 'triangular', 'uniform', 'vonmises', 'wald', 'weibull', 'zipf']
そして2番目のもの:
>>> sys.path.insert(0, '/usr/lib/pymodules/python2.7/numpy/random')
>>> import mtrand
>>> dir(mtrand)
['__builtins__', '__doc__', '__file__', '__name__', '__package__']
この動作はどのように可能ですか?
編集:
- これら 2 つのテストは、異なる Python プロセスで実行されました。
- システムパスをいじるのはばかげていることはわかっています。しかし、これは通常のプログラム用ではなく、オートコンプリート用です。確かに、numpy パッケージ全体をインポートしたくありません。私はちょうど作ることができるようにしたいです
dir(mtrand)