我正试图使用Linux安装adns-python
,并且不得不使用一些特殊选项重新编译adns
,因此我似乎不能像平常那样使用easy_install <tarball>
。
(py26_default)[mpenning@localhost 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
的本地安装轻松安装?编辑
在下面的尝试之后,我仍然发现一个
ld
错误,即使我导出了LD_LIBRARY_PATH
。(py26_default)[mpenning@localhost src]$ ls /opt/adns/lib/
libadns.a libadns.so libadns.so.1 libadns.so.1.2
(py26_default)[mpenning@localhost src]$ export LD_LIBRARY_PATH=/opt/adns/lib
(py26_default)[mpenning@localhost 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)[mpenning@localhost src]$
最佳答案
ld_library_path用于在运行时(运行可执行文件时)而不是在链接期间查找共享库。
要构建扩展,请打开tarball并运行:
python setup.py build_ext -I/opt/adns/include -L/opt/adns/lib -R/opt/adns/lib
要安装:
python setup.py install
您可以在
setup.cfg
中指定build\u ext选项:[build_ext]
include_dirs=/opt/adns/include
library_dirs=/opt/adns/lib
rpath=/opt/adns/lib
在这种情况下,您可以直接运行easy_install。
关于python - Python的easy_install和自定义 header /库位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11889800/