Bootstrap

python在Linux的虚拟环境中安装包ta-lib:解决--prefix路径问题

Linux安装 ta-lib
Download ta-lib-0.4.0-src.tar.gz and:

tar -xzf ta-lib-0.4.0-src.tar.gz
cd ta-lib/
./configure --prefix=/usr
make
sudo make install

If you build TA-Lib using make -jX it will fail but that’s OK! Simply rerun make -jX followed by [sudo] make install.

Note: if your directory path includes spaces, the installation will probably fail with No such file or directory errors.
在你激活了名为 fundvenv 的虚拟环境后,你已经处于一个隔离的环境,可以在这个环境中安装软件而不会影响到全局系统。你提供的命令是正确的,它们将会把软件安装到你的虚拟环境目录中。

这里是你将要执行的步骤:

  1. ./configure --prefix=~/fundvenv:这个命令会配置软件,准备在 ~/fundvenv 目录下安装。--prefix 参数指定了安装的目标路径。

  2. make:这个命令会根据配置编译软件。

  3. make install:这个命令会将编译好的软件安装到指定的前缀路径。

确保你有足够的权限在 ~/fundvenv 目录下写入文件。由于你当前是以 root 用户身份运行,理论上你应该有权限,但如果你是在多用户系统上操作,最好以普通用户身份进行这些操作以避免潜在的安全问题。

如果你不是以 root 用户身份运行,并且遇到权限问题,你可能需要在 make install 步骤中使用 sudo 来获取必要的权限,但请谨慎使用,因为这可能会破坏虚拟环境的隔离性。

以下是完整的命令序列:

(fundvenv) [root@ ta-lib]# ./configure --prefix=~/fundvenv
(fundvenv) [root@ ta-lib]# make
(fundvenv) [root@ ta-lib]# make install

执行这些命令后,软件将被安装到你的 ~/fundvenv 虚拟环境目录中,并且只有在这个虚拟环境中可用。当你不再需要使用这个软件时,可以通过 deactivate 命令退出虚拟环境。

configure: error: expected an absolute directory name for --prefix: ~/fundvenv

出现这个错误是因为./configure脚本期望的是一个绝对路径,而不是相对路径。在你的命令中,~/fundvenv是一个相对路径,它依赖于当前用户的家目录。在某些情况下,特别是当脚本以root用户运行时,~可能不会正确地被解析为家目录路径。

要解决这个问题,你可以使用完整的绝对路径。在大多数Linux系统中,~(tilde)代表当前用户的家目录,对于root用户来说通常是/root。但是,由于你已经激活了名为fundvenv的虚拟环境,你的家目录应该是/home/your_username(将your_username替换为你的实际用户名)。

你可以这样来获取绝对路径:

echo $HOME/fundvenv

这将输出~/fundvenv的绝对路径。然后,你可以使用这个绝对路径作为--prefix的值。例如,如果输出是/home/your_username/fundvenv,那么你应该这样运行./configure

./configure --prefix=/home/your_username/fundvenv

请将/home/your_username/fundvenv替换为echo $HOME/fundvenv命令的实际输出结果。

完整的命令序列如下:

(fundvenv) [root@ ta-lib]# ./configure --prefix=$(echo $HOME/fundvenv)
(fundvenv) [root@ ta-lib]# make
(fundvenv) [root@ ta-lib]# make install

这样,./configure脚本应该能够正确地识别--prefix参数,并且软件将被安装到你的虚拟环境目录中。

;