我正在将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包中的那个
答案 0 :(得分:0)
这是适合我的解决方案。它不认为它是一个好的解决方案,因为它需要更改numpy
包中的一行代码。尽管如此,它允许我们通过简单地向pandas
添加文件夹,在专有软件中使用嵌入式Python解释器中的numpy
和sys.path
。
文件已更改
T:\Some\Path\numpy\__init__.py
前一行
行:171 - import random
此行假设random
将从T:\Some\Path\numpy\random\
之后的行
行:171 - from numpy import random
这迫使它使用random
中的numpy
包而不是标准包
我以为我会离开这里,这是一个未被接受的答案,直到有人能提出更好的解决方案。