我已经检查过以下其他StackOverflow问题:
也许有些人可能会回答我的问题,但据我所知,我仍然不了解情况。
我正在尝试导入numpy以便matplotlib可以工作,但是在numpy文件夹中执行__init__.py
文件时,会显示以下错误消息:
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,你的工作目录应该是它所在的目录。
但是,我不明白这一点。 Aren你应该导入你想要使用的东西吗?我假设import命令将源目录组合到此语句中的当前工作目录中。
我还阅读了其他答案,例如:
使用distutils
安装本地目录
使用virtualenv
创建虚拟系统目录
使用Enthought的EPD在我认为的系统目录中预先安装了numpy, 以及
使用像$ dpkg -i --force-not-root --root=$HOME mypackagename.deb
这样的命令来创建我认为是某种子系统目录,它被视为系统目录。
所以,如果我错了,请纠正我,但是在某种程度上,numpy强烈要求以某种方式安装在主系统目录中吗?
我正在使用没有管理权限的Windows机器。
他们安装了Python 3.3 Shell以及matplotlib。
运行命令提示符时,无法识别python
和python3
。我必须从应用程序菜单运行Python shell。
我可以成功开始从我自己的目录开始导入matplotlib,与他们不同,但它会在到达numpy模块的__init__.py
时停止,如果它存在并报告上述错误。
幸运的是,我的管理员能够在site-packages
文件夹中正确安装numpy。谢谢你回答我的问题。因为你,我更了解情况。
答案 0 :(得分:9)
numpy包含用C编写的扩展模块。您需要在numpy包完成之前构建这些扩展模块。最强大的方法是构建它并像平常一样将其安装到site-packages
。您也可以使用standard distutils options for this将其安装到另一个目录。但是,一旦安装完毕,就应该从源树中更改目录。 Python开始在当前目录中查找软件包,因此将首先获取不完整的numpy软件包(没有必要的内置C扩展模块),并导致出现错误消息。这种情况发生了很多,所以我们给出了一条长信息来解释该怎么做。