解释为什么不应该从源目录导入numpy

Tim*_*wan 12 python directory import numpy matplotlib

免责声明:

我已经检查了以下其他StackOverflow问题:

也许对某些人来说,这些可能会回答我的问题,但据我所知,我仍然不了解情况.

我正在尝试导入numpy以便matplotlib可以工作,但是在__init__.pynumpy文件夹中执行该文件时,会显示以下错误消息:

ImportError: Error importing numpy: you should not try to import numpy from
    its source directory; please exit the numpy source tree, and relaunch
    your python intepreter from there.
Run Code Online (Sandbox Code Playgroud)

解释从其源目录导入内容的意义,而不是导入它的其他方式.这是否意味着它在导入时不应该是源代码?或者它是否意味着它实际上只是我导入的错误目录/文件夹.我知道另一个StackOverflow的答案是:

这个信息相当不言自明; 调用Python时,您的工作目录不应该是numpy源目录; 应该安装numpy,你的工作目录应该是它所在的目录.

但是,我不明白这一点.你不应该导入你想要使用的东西吗?我假设import命令将源目录组合到此语句中的当前工作目录中.

我还阅读了其他答案,例如:

  • 使用distutils安装本地目录

  • 使用virtualenv创建虚拟系统目录

  • 使用Enthought的EPD将numpy预先安装在我认为是系统目录的地方,以及

  • 使用命令$ dpkg -i --force-not-root --root=$HOME mypackagename.deb来创建我认为是某种被视为系统目录的子系统目录.

所以,如果我错了,请纠正我,但是在某种程度上,numpy强烈要求以某种方式安装在主系统目录中?

机器状态:

我正在使用没有管理权限的Windows机器.他们安装了Python 3.3 Shell以及matplotlib.当运行命令提示符,pythonpython3无法识别.我必须从应用程序菜单运行Python shell.我可以成功开始从我自己的目录开始导入matplotlib,不同于他们的目录,但它在到达__init__.pynumpy模块时停止,如果它存在并报告上述错误.

更新:

幸运的是,我的管理员能够直接在site-packages文件夹中正确安装numpy .谢谢你回答我的问题.因为你,我更了解情况.

Rob*_*ern 10

numpy包含用C编写的扩展模块.在numpy包完成之前,您需要构建这些扩展模块.最强大的方法是构建它并将其安装到site-packages正常情况下.您也可以使用标准的distutils选项将其安装到另一个目录中.但是,一旦安装完毕,就应该从源树中更改目录.Python开始在当前目录中查找软件包,因此将首先获取不完整的numpy软件包(没有必要的内置C扩展模块),并导致出现错误消息.这种情况发生了很多,所以我们给出了一条长信息来解释该怎么做.

  • 1. 不,大多数“numpy”都是为了速度的扩展模块。2. numpy 的核心是一个扩展模块。您必须构建扩展模块。3. 如果找不到预先构建的二进制轮,是的。4. 这不是那种通常会得到教程式文档的东西。初学者应该使用 PyPI 上的二进制文件。https://scipy.org/install.html https://numpy.org/devdocs/user/building.html (2认同)