我正在尝试在没有管理员权限的系统上从源代码在 Linux 上安装 python2.7。/usr/bin
中安装了一个版本,但我希望我的安装完全独立于此版本。 我也在使用较新的 gcc 编译器测试构建,所以我想避免像 anaconda 这样的预构建包。
我下载了python源代码并运行了以下内容
./configure --prefix=$INSTALL_DIR --exec-prefix=$INSTALL_DIR --enable-shared --enable-optimizations --enable-unicode=ucs4
make
make install
$INSTALL_DIR
的地方就是我希望我的安装去的地方。
配置和构建运行没有错误,但是,当我运行构建的python可执行文件时
$INSTALL_DIR/bin/python
并检查它仍在使用/usr
作为前缀的搜索路径:
Python 2.7.13 (default, May 31 2017, 17:58:17)
[GCC 7.1.1 20170503 (Red Hat 7.1.1-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/usr'
这意味着找不到我安装到$INSTALL_DIR
中的模块。 此外,如果模块已安装在/usr
空间中,则运行pip install XXX
不会执行任何操作。
我想避免使用$PYTHONPATH
和$LD_LIBRARY_PATH
之类的东西,那么有没有办法在sys.prefix
和sys.path
指向$INSTALL_DIR
并且对系统级安装一无所知的地方进行设置?
感谢您的帮助。
停止传递除prefix
以外的标志进行配置,您的 python 将给出正确的sys.path
,该$INSTALL_DIR
统计信息。
$ ./configure --prefix=$INSTALL_DIR