解释为什么numpy的不应该从源目录中导入(Explain why numpy should not

2019-07-18 21:15发布

研究免责声明:

我已经研究了下列其他StackOverflow的问题:

  • 如何导入在Python Shell numpy的

  • 我如何使用numpy的无需安装呢?

  • 从相对路径导入模块

也许一些,它们可以回答我的问题,但据我所知,我还是不明白的情况。

我试图导入numpy的,这样matplotlib会的工作,但在该执行__init__.py在numpy的文件夹中的文件,会显示以下错误信息:

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.

解释这是什么意思,从它的源目录中导入的东西,而不是导入它的一些其他的方式。 这是否意味着它不应该是源代码,当它是进口? 还是意味着它从字面上只是错误的目录/文件夹,我进口。 我知道有其他StackOverflow的答案是:

该消息是相当不言自明; 你的工作目录不应该是当你调用的Python的numpy的源目录; numpy的应安装和使用你的工作目录应该是什么,但它生活的地方的目录。

不过,我不明白这一点。 你不是导入您要使用的东西呢? 我假设导入命令集源目录复制到在此声明您当前的工作目录。

我也看过其他的答案,例如:

  • 使用distutils安装本地目录

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

  • 使用Enthought的EPD有numpy的预装在了我认为是系统目录下,并

  • 使用如下命令$ dpkg -i --force-not-root --root=$HOME mypackagename.deb创造什么样的,我相信是某种子系统目录的是像一个系统目录处理。

因此,纠正我,如果我错了,但不知何故numpy的强烈要求以某种方式安装在主系统目录?

机器状态:

我使用Windows设备上,无需行政privlidges。 他们的Python 3.3壳牌以及安装matplotlib。 当运行命令提示符下, pythonpython3无法识别。 我要运行从应用程序菜单Python的外壳。 我可以全成开始从连我自己的目录,与他们不同的导入matplotlib,但它停止在到达__init__.py的numpy的模块,如果它存在,并报告上述错误。

更新:

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

Answer 1:

numpy的包括C语言编写的扩展模块,您将需要前numpy的安装包是否完整来构建这些扩展模块。 最可靠的方法来做到这一点是建立它并将其安装到site-packages正常人一样。 您也可以使用它安装到另一个目录本标准的distutils选项 。 然而,一旦你已经安装了它,你应该改变你的目录出来的源代码树。 蟒蛇开始寻找当前目录的包,所以不完全numpy的包装的存在,(没有必要建C扩展模块)将第一次拿起并导致错误你们报该消息。 这种情况经常发生,所以我们给长的消息,说明该怎么做。



文章来源: Explain why numpy should not be imported from source directory