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

问题描述 投票:0回答:2

我正在尝试安装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命令,重新启动外壳程序,也直接在命令行中键入export SPS_HOME,但没有任何解决方法。有一个与此问题类似的问题,发布者的问题是由于在将环境变量添加到.bashrc文件时他们没有以root用户身份登录,而他们却以root用户身份运行安装命令。须藤我假设他们能够通过以root用户身份登录并将环境变量重新添加到.bashrc来解决此问题。但是,此修复程序不适用于我,我想知道是否还有其他想法。我正在使用Ubuntu 20.04和Windows 10。

bash ubuntu environment-variables install
2个回答
0
投票

sudo是元凶。默认情况下,通过sudo调用的命令不会从调用程序的Shell继承环境。 sudo -E应该禁用此行为。


0
投票

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

sudo SPS_HOME=$SPS_HOME python3 setup.py install
© www.soinside.com 2019 - 2024. All rights reserved.