尝试安装 FSPS 会引发环境变量错误



我正在尝试安装 fsps 程序的 python 接口。但是,当我运行sudo python3 setup.py install时,出现错误:

Traceback (most recent call last):
File "/mnt/c/Users/Lea/Documents/HSCFA/python-fsps/fsps/__init__.py", line 26, in <module>
ev = os.environ["SPS_HOME"]
File "/usr/lib/python3.8/os.py", line 675, in __getitem__
raise KeyError(key) from None
KeyError: 'SPS_HOME'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "setup.py", line 87, in <module>
from fsps import __version__  # NOQA
File "/mnt/c/Users/Lea/Documents/HSCFA/python-fsps/fsps/__init__.py", line 28, in <module>
raise ImportError("You need to have the SPS_HOME environment variable")
ImportError: You need to have the SPS_HOME environment variable

但是,我已经在~./bashrc文件中设置了 SPS_HOME 变量,包括导出语句。我尝试使用source ~/.bashrc命令,重新启动 shell,并直接在命令行中键入export SPS_HOME,但没有任何修复方法。不久前发布了一个类似的问题,海报的问题是由于他们在将环境变量添加到 .bashrc 文件时没有以 root 身份登录,但他们使用 sudo 以 root 身份运行安装命令。我假设他们能够通过以 root 身份登录并将环境变量重新添加到 .bashrc 来解决此问题。但是,此修复程序对我不起作用,我想知道是否有人有任何其他想法。我正在使用 Ubuntu 20.04 和 Windows 10。

您的问题是sudo出于安全原因,不会将环境变量传递给您执行的命令。如果需要,可以将-E标志传递给sudo,或显式指定它:

sudo SPS_HOME=$SPS_HOME python3 setup.py install
sudo

是罪魁祸首。默认情况下,通过sudo调用的命令不会从调用方的 shell 继承环境。sudo -E python3 setup.py install应禁用此行为。

最新更新