Python子模块导入差异

时间:2013-08-20 20:25:25

标签: python numpy python-2.6 python-import

我正在将numpy包动态导入到另一个专有系统的python环境中。顶级numpy包从正确的位置导入,但numpy.random包指向标准库。为什么会这样?

代码

import sys

LIB_PATH = 'T:\\Some\\Path\\'

if LIB_PATH not in sys.path:
    sys.path.insert(0, LIB_PATH)

import numpy

print numpy
print numpy.random

输出

<module 'numpy' from 'T:\Some\Path\numpy\__init__.pyc'>
<module 'random' from 'C:\Python26x64\Lib\random.pyc'>

为什么numpy.random指向C:\Python26x64\Lib\random.pyc。当我从C:\Python26x64\的标准python解释器运行它时,随机的确是numpy包中的那个

1 个答案:

答案 0 :(得分:0)

这是适合我的解决方案。它不认为它是一个好的解决方案,因为它需要更改numpy包中的一行代码。尽管如此,它允许我们通过简单地向pandas添加文件夹,在专有软件中使用嵌入式Python解释器中的numpysys.path

文件已更改

T:\Some\Path\numpy\__init__.py

前一行

行:171 - import random

此行假设random将从T:\Some\Path\numpy\random\

加载

之后的行

行:171 - from numpy import random

这迫使它使用random中的numpy包而不是标准包

我以为我会离开这里,这是一个未被接受的答案,直到有人能提出更好的解决方案。