2012-08-09 54 views
1

我试图使用Linux安装adns-python,不得不重新编译adns一些特殊选项,所以我似乎无法使用easy_install <tarball>,因为我通常会Python的easy_install的和自定义页眉/库的位置

(py26_default)[[email protected] src]$ easy_install adns-python-1.2.1.tar.gz 
Processing adns-python-1.2.1.tar.gz 
Running adns-python-1.2.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-9cVl4i/adns-python-1.2.1/egg-dist-tmp-vvO8Ms 
adnsmodule.c:10:18: error: adns.h: No such file or directory 
adnsmodule.c:31: error: expected specifier-qualifier-list before âadns_stateâ 

adns.h安装在/opt/adns/include/adns.h之下;我如何使用本地安装adns进行easy_install安装?

编辑

下面的尝试之后,我仍然觉得一个ld错误,即使我出口LD_LIBRARY_PATH ...

(py26_default)[[email protected] src]$ ls /opt/adns/lib/ 
libadns.a libadns.so libadns.so.1 libadns.so.1.2 
(py26_default)[[email protected] src]$ export LD_LIBRARY_PATH=/opt/adns/lib 
(py26_default)[[email protected] src]$ C_INCLUDE_PATH=/opt/adns/include easy_install ./adns-python-1.2.1.tar.gz 
Processing adns-python-1.2.1.tar.gz 
Running adns-python-1.2.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-x68T9f/adns-python-1.2.1/egg-dist-tmp-MpCzMP 
/usr/bin/ld: cannot find -ladns 
collect2: ld returned 1 exit status 
error: Setup script exited with error: command 'gcc' failed with exit status 1 
(py26_default)[[email protected] src]$ 

回答

3

LD_LIBRARY_PATH用于在运行时(运行可执行文件时)找到共享库,而不是在链接过程中。

要构建扩展,解压压缩包,然后运行:

python setup.py build_ext -I/opt/adns/include -L/opt/adns/lib -R/opt/adns/lib 

要安装:

python setup.py install 

你可以在setup.cfg指定build_ext选项:

[build_ext] 
include_dirs=/opt/adns/include 
library_dirs=/opt/adns/lib 
rpath=/opt/adns/lib 

在这种情况下,你可以直接运行easy_install 。

0

请尝试这样

INCLUDE_PATH=/opt/adns/include easy_install adns-python-1.2.1.tar.gz 

如果它不工作请试用CPLUS_INCLUDE_PATHC_INCLUDE_PATH

+0

这是什么服务器?另请尝试安装完整的开发堆栈'build-essential'(for c)和'python-all-dev'(for python)。然后尝试相同的命令。 – Pradeeshnarayan 2012-08-09 19:34:25

+0

由于'/ usr/bin/ld:无法找到-ladns',安装失败......在这一点上,它与python devel libs或c build tools无关 – 2012-08-09 19:35:38