我正在尝试安装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
文件(包括export语句)中设置了SPS_HOME变量。我尝试使用source ~/.bashrc
命令,重新启动外壳程序,还直接在命令行中输入export SPS_HOME
,但没有任何解决方法。有一个与此类似的问题,前不久发布,发布者的问题是由于在将环境变量添加到.bashrc文件时他们没有以root用户身份登录,但是他们以root用户身份运行安装命令须藤我假设他们能够通过以root用户身份登录并将环境变量重新添加到.bashrc来解决此问题。但是,此修复程序不适用于我,我想知道是否还有其他想法。我正在使用Ubuntu 20.04和Windows 10。
答案 0 :(得分:1)
您的问题是,出于安全原因,sudo
不会将环境变量传递给您执行的命令。如果您愿意,可以将-E
标志传递给sudo
,或明确指定它:
sudo SPS_HOME=$SPS_HOME python3 setup.py install
答案 1 :(得分:0)
sudo
是元凶。默认情况下,通过sudo
调用的命令不会从调用者的shell继承环境。 sudo -E python3 setup.py install
应该禁用此行为。