Apache mod_wsgi с conda python 3 - не удается загрузить модуль

Ни один из предыдущих ответов не помог в моем случае, но запуск приложения через dbus-launch выполнил свою работу:

ssh myhost "dbus-launch gnome-terminal --display localhost:10.0 &"
0
20.04.2019, 15:41
1 ответ

РЕШЕНИЕ:Я понял, что эта ошибка возникла, потому что моя установка 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()

Если кто-то наткнется на это в будущем, КОММЕНТАРИЙ! Я хотел бы быть в состоянии предложить некоторую помощь.

Удачи!

1
28.01.2020, 04:26

Теги

Похожие вопросы