我正在从源代码构建python(版本3.5)以获取最新版本.我可以makepython并安装它,但几个"可选"模块,包括_sqlite3没有安装:
$>./configure --prefix=/my/prefix && make
Run Code Online (Sandbox Code Playgroud)
产量如下:
...
Python构建成功完成!
找不到构建这些可选模块的必要位:
_bz2 _lzma _sqlite3
_ssl _tkinter readline
要查找必要的位,请在detect_modules()中的setup.py中查找模块的名称.
我(frustratedly)安装从源代码的sqlite3也保证了存在的sqlite3地方发展的文件,我相信我已经设置了必要的lib和include路径按相关LZMA模块安装教程:
$> find / -name libsqlite3.so
/home/username/myproject/lib/libsqlite3.so
$> find / -name sqlite3.h
/home/username/myproject/include/sqlite3.h
$> echo $LD_LIBRARY_PATH
/home/username/myproject/lib
$> echo $LDFLAGS
-L/home/username/myproject/lib
$> echo $CFLAGS
-I/home/username/myproject/include
Run Code Online (Sandbox Code Playgroud)
然而,当我跑步时./configure --prefix=/my/prefix --enable-loadable-sqlite-extensions && make,我得到上述错误_sqlite3(其中包括)未安装,因为找不到必要的位.
基于这个相关的答案,似乎我可能需要改变setup.py?那是对的吗?
有没有比黑客攻击python setup.py脚本更好的方法?
顺便说一句,我认识到,安装sqlite-dev有yum可能解决这个问题,并把相关的sqlite3文件复制到Python安装的地方很明显,但我不肯定,我将能够做到这一点,由于是,由于有限的资源库的访问.
php 似乎没有解析符号链接。
我试图将符号链接的目标添加到 php 文件中的包含路径,但 php 似乎无法识别符号链接指向目录,因此无法找到我想要包含的文件。
对于上下文,这里是相关目录详细信息
$> pwd
/var/www/siteroot
$> ls -l
content
...
includes -> content/subdir/includes
...
public_html
$> ls includes/common/
default-home.php
Run Code Online (Sandbox Code Playgroud)
这是我试图从中加载页面的 php 文件default-home.php。
$> cat public_html/index.php
<?php
wanted_path="../includes/common"
set_include_path($wanted_path.PATH_SEPARATOR.get_includes_path());
var_dump(is_dir($wanted_path)); # testing to see if the included path is a directory
var_dump(is_dir("../includes")); # test to see if the symbolic link alone resolves to a directory
include "default-home.php";
?>
Run Code Online (Sandbox Code Playgroud)
根据上述内容,当我访问该index.php网页时,我希望看到:
bool(true) bool(true)
...(output/contents of default-home.php)
Run Code Online (Sandbox Code Playgroud)
但是,is_dir()调用结果为 False 和 False,并且错误日志显示
PHP …Run Code Online (Sandbox Code Playgroud)