我的系统是SLES 11.4,有python 2.6.9。
我对python知之甚少,并且没有找到下载rpm的地方,它给了我所需的python包
我获得了numpy 1.4和1.11,我相信在numpy上成功python setup.py build
后跟python setup.py install
。
从内存开始,我认为这是在/usr/local/lib64/python2.6/...
接下来我尝试了建设&安装matplotlib(需要numpy),当我做python setup.py build
时,它礼貌地响应,找不到numpy。所以我的问题是
我是否需要设置某种与python相关的环境变量,这与LD_LIBRARY_PATH或PATH一致?
随着我越来越多地使用python安装包,我必须从源代码构建,我需要了解python的默认安装目前的位置,新的东西应该去哪里,以及python的核心设置是哪里知道如何以及在何处识别新包装。
答案 0 :(得分:0)
如果您使用的是Linux,请确保正确设置了$PYTHONPATH
环境变量。
要执行此操作,请在终端中键入以下内容:
echo $PYTHONPATH
如果找不到,可以通过以下操作手动设置变量,并在~/.bashrc
文件中找到要查找的模块的位置(使用您选择的编辑器,我选择gedit作为一个例子):
sudo gedit ~/.bashrc
当你完成后别忘了
source ~/.bashrc
答案 1 :(得分:0)
我想我明白了。显然,SLES 11.4不包含默认安装中的开发头文件,这些头文件来自他们的SDK for numpy 1.8。 当然,他们不提供matplotlib以及一堆常见的python包。
根据SLES SDK的python包是系统默认位于/usr/lib64/python2.6/site-packages/
下面,它在这里我看到numpy版本1.8。因此,如果您选择各种python包,则使用YAST软件管理器,这就是它们所在的位置。
到目前为止,没有设置 PYTHONPATH 环境变量,我可以启动python,输入import numpy,并且大部分都使用它。但是,如果我尝试构建matplotlib 0.99.1,它会响应它无法找到numpy版本1.8的头文件,因此它知道安装了numpy 1.8但是需要安装开发包。
假设开发标题是指.h文件,
如果我在/usr/lib64/python2.6/site-packages
下搜索我没有任何.h文件!
我刚刚下载了numpy-1.8.0.tar.gz的源代码,并轻松地执行了python setup.py.build
后跟python setup.py install
,并发现它已安装在/usr/local/lib64/python2.6/site-packages/
下
如果没有设置 PYTHONPATH 环境变量,如果我尝试构建matplotlib,我仍然会收到有关未找到头文件的错误。
但是在我的bash shell中,以root身份执行export PYTHONPATH=/usr/local/lib64/python2.6/site-packages
后,我可以成功构建并安装matplotlib 0.99.1,它也会安装/usr/local/lib64/python2.6/site-packages
注意:
我还做了一个成功的构建&安装numpy-1.11并在/usr/local/lib64/python2.6/site-packages
下抛出然而当我尝试使用PYTHONPATH设置构建matplotlib 0.99.1时,它直接报告未安装numpy需要1.1版或更高版本。所以这里似乎这个旧版本的matplotlib需要使用某个版本范围的numpy,即最新的numpy 1.11不兼容。
系统设置的唯一其他环境变量是 PYTHONSTARTUP ,它指向文件/etc/pythonstart
。