我正在尝试安装 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
应禁用此行为。