Ни один из предыдущих ответов не помог в моем случае, но запуск приложения через dbus-launch выполнил свою работу:
ssh myhost "dbus-launch gnome-terminal --display localhost:10.0 &"
РЕШЕНИЕ:Я понял, что эта ошибка возникла, потому что моя установка Python находилась в моем каталоге home
. Таким образом, у Apache не было разрешения на доступ к среде.
Чтобы решить эту проблему, я сделал следующее:
Удалена моя установка anaconda3:
[ec2-user@ip] ~ $ rm -rf anaconda3/
# -- be sure to remove directories.conda/ and.anaconda_backup/ -- #
# -- these should be in the same directory as the anaconda3/ directory -- #
Re -установил anaconda3 как root в каталог /usr/local
(, доступный всем пользователям, работает с Apache):
[ec2-user@ip] ~ $ sudo su -
[root@ip] ~ $ cd /usr/local
[root@ip] ~ $ wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
# ^ whichever version you want. Go to https://repo.continuum.io/archive/
[root@ip] ~ $ bash Anaconda3-5.1.0-Linux-x86_64.sh
# specify your path when prompted --> /usr/local/anaconda3
# note that directory /usr/local/anaconda3 cannot exist prior to running the command
Добавьте строку export PATH='/usr/local/anaconda3/bin:$PATH'
в конец вашего файла /root/.bashrc КАК ПОЛЬЗОВАТЕЛЯ ROOT! (отредактируйте старый путь к anaconda3, если он уже существует в конце этого файла)
[root@ip] ~ $ vi /root/.bashrc # -- add/edit the line here -- #
[root@ip] ~ $ source /root/.bashrc
Убедитесь, что пользователь root использует правильную версию Python:
[root@ip] ~ $ which python
/usr/local/anaconda3/bin/python
Выйти как пользователь root:
[root@ip] ~ $ exit
Убедитесь, что правильная версия Python работает как пользователь по умолчанию:
[ec2-user@ip] ~ $ which python
/usr/local/anaconda3/bin/python
Если это печатает /usr/bin/python
или что-то другое, чем /usr/local/anaconda3/bin/python
, убедитесь, что вы добавили PATH, указанный выше, в файл ~/.bashrc вашего пользователя (, точно так же, как вы делали это как пользователь root)
ПРИМЕЧАНИЕ. :Все новые установки/настройки среды теперь должны выполняться с правами ROOT. т.е.:
[ec2-user@ip] ~ $ sudo su -
[root@ip] ~ $ conda install flask
...
[root@ip] ~ $ exit
# -- open Python to verify that your installation worked -- #
[ec2-user@ip] ~ $ python
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
# -- shouldn't throw an ImportError -- #
>>> exit()
Если кто-то наткнется на это в будущем, КОММЕНТАРИЙ! Я хотел бы быть в состоянии предложить некоторую помощь.
Удачи!