Проблема с pgadmin 4 + apache + виртуальная среда (из conda) в Ubuntu 18.04 (ValueError: не удалось проанализировать CPython sys.version: '3.6.7 (...)') - PullRequest
0 голосов
/ 26 декабря 2018

Я работаю на своем ноутбуке в Ubuntu 18.04 и хотел бы попробовать использовать pgadmin и Apache, как если бы я работал на сервере.Я следую этому учебнику и сделал, как указано, за исключением виртуальной среды, которую я создал с помощью conda: conda create -n pgadmin python=3.6 Для ServerName в /etc/apache2/sites-available/pgadmin4.conf я просто использовал первый IP-адрес WXYZ, полученный от hostname -I:

<VirtualHost *>
    ServerName W.X.Y.Z

    WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/sammy/python_envs/pgadmin
    WSGIScriptAlias / /home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi

    <Directory "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/">
        WSGIProcessGroup pgadmin
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>
</VirtualHost>

Все еще только используя мой ноутбук, веб-сайт Apache по умолчанию отлично работает на этом IP-адресе в моем браузере, однако при использовании этого же IP-адреса после активации веб-сайта gadmin4 (sudo a2ensite pgadmin4.conf) я получилошибка от Apache:

Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос.

Пожалуйста, свяжитесь с администратором сервера по адресу [адрес не указан]чтобы сообщить им о времени, когда произошла эта ошибка, и о действиях, выполненных вами непосредственно перед этой ошибкой.

Дополнительная информация об этой ошибке может быть доступна в журнале ошибок сервера.

Apache / 2.4.29 (Ubuntu) Сервер в порту WXYZ 80

Проверка Apache (apachectl configtest) показалась нормальной:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Полный журнал ошибок дляm Apache (/var/log/apache2/error.log) содержит следующее:

[Wed Dec 26 14:32:08.810269 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] mod_wsgi (pid=59825): Target WSGI script '/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi' cannot be loaded as Python module.
[Wed Dec 26 14:32:08.810825 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] mod_wsgi (pid=59825): Exception occurred processing WSGI script '/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi'.
[Wed Dec 26 14:32:08.811011 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] Traceback (most recent call last):
[Wed Dec 26 14:32:08.811061 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi", line 36, in <module>
[Wed Dec 26 14:32:08.811097 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     from pgAdmin4 import app as application
[Wed Dec 26 14:32:08.811107 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py", line 70, in <module>
[Wed Dec 26 14:32:08.811110 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     app = create_app()
[Wed Dec 26 14:32:08.811115 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/__init__.py", line 374, in create_app
[Wed Dec 26 14:32:08.811131 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     driver.init_app(app)
[Wed Dec 26 14:32:08.811135 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/__init__.py", line 40, in init_app
[Wed Dec 26 14:32:08.811137 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     DriverRegistry.load_drivers()
[Wed Dec 26 14:32:08.811142 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/registry.py", line 88, in load_drivers
[Wed Dec 26 14:32:08.811144 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     module = import_module(module_name)
[Wed Dec 26 14:32:08.811148 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/importlib/__init__.py", line 126, in import_module
[Wed Dec 26 14:32:08.811151 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     return _bootstrap._gcd_import(name[level:], package, level)
[Wed Dec 26 14:32:08.811154 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/__init__.py", line 27, in <module>
[Wed Dec 26 14:32:08.811157 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     from .server_manager import ServerManager
[Wed Dec 26 14:32:08.811161 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/server_manager.py", line 27, in <module>
[Wed Dec 26 14:32:08.811174 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     from sshtunnel import SSHTunnelForwarder, BaseSSHTunnelForwarderError
[Wed Dec 26 14:32:08.811179 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/sshtunnel.py", line 25, in <module>
[Wed Dec 26 14:32:08.811181 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     import paramiko
[Wed Dec 26 14:32:08.811185 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/__init__.py", line 22, in <module>
[Wed Dec 26 14:32:08.811187 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     from paramiko.transport import SecurityOptions, Transport
[Wed Dec 26 14:32:08.811190 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/transport.py", line 38, in <module>
[Wed Dec 26 14:32:08.811193 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     from paramiko.auth_handler import AuthHandler
[Wed Dec 26 14:32:08.811196 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/auth_handler.py", line 72, in <module>
[Wed Dec 26 14:32:08.811198 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     from paramiko.ssh_gss import GSSAuth, GSS_EXCEPTIONS
[Wed Dec 26 14:32:08.811201 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/ssh_gss.py", line 45, in <module>
[Wed Dec 26 14:32:08.811204 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     from pyasn1.type.univ import ObjectIdentifier
[Wed Dec 26 14:32:08.811207 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pyasn1/type/univ.py", line 13, in <module>
[Wed Dec 26 14:32:08.811209 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     from pyasn1.compat import integer
[Wed Dec 26 14:32:08.811213 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pyasn1/compat/integer.py", line 12, in <module>
[Wed Dec 26 14:32:08.811215 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     implementation = platform.python_implementation()
[Wed Dec 26 14:32:08.811218 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/platform.py", line 1265, in python_implementation
[Wed Dec 26 14:32:08.811221 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     return _sys_version()[0]
[Wed Dec 26 14:32:08.811224 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/platform.py", line 1223, in _sys_version
[Wed Dec 26 14:32:08.811227 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044]     repr(sys_version))
[Wed Dec 26 14:32:08.811239 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38044] ValueError: failed to parse CPython sys.version: '3.6.7 (default, Oct 22 2018, 11:32:17) \\n[GCC 8.2.0]'
[Wed Dec 26 14:32:09.642066 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] mod_wsgi (pid=59825): Target WSGI script '/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi' cannot be loaded as Python module.
[Wed Dec 26 14:32:09.642149 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] mod_wsgi (pid=59825): Exception occurred processing WSGI script '/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi'.
[Wed Dec 26 14:32:09.642554 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] Traceback (most recent call last):
[Wed Dec 26 14:32:09.642631 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi", line 36, in <module>
[Wed Dec 26 14:32:09.642646 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     from pgAdmin4 import app as application
[Wed Dec 26 14:32:09.642652 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py", line 70, in <module>
[Wed Dec 26 14:32:09.642655 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     app = create_app()
[Wed Dec 26 14:32:09.642659 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/__init__.py", line 374, in create_app
[Wed Dec 26 14:32:09.642662 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     driver.init_app(app)
[Wed Dec 26 14:32:09.642666 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/__init__.py", line 40, in init_app
[Wed Dec 26 14:32:09.642669 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     DriverRegistry.load_drivers()
[Wed Dec 26 14:32:09.642673 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/registry.py", line 88, in load_drivers
[Wed Dec 26 14:32:09.642675 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     module = import_module(module_name)
[Wed Dec 26 14:32:09.642679 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/importlib/__init__.py", line 126, in import_module
[Wed Dec 26 14:32:09.642682 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     return _bootstrap._gcd_import(name[level:], package, level)
[Wed Dec 26 14:32:09.642686 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/__init__.py", line 27, in <module>
[Wed Dec 26 14:32:09.642689 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     from .server_manager import ServerManager
[Wed Dec 26 14:32:09.642693 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/server_manager.py", line 27, in <module>
[Wed Dec 26 14:32:09.642696 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     from sshtunnel import SSHTunnelForwarder, BaseSSHTunnelForwarderError
[Wed Dec 26 14:32:09.642699 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/sshtunnel.py", line 25, in <module>
[Wed Dec 26 14:32:09.642702 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     import paramiko
[Wed Dec 26 14:32:09.642706 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/__init__.py", line 22, in <module>
[Wed Dec 26 14:32:09.642708 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     from paramiko.transport import SecurityOptions, Transport
[Wed Dec 26 14:32:09.642712 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/transport.py", line 38, in <module>
[Wed Dec 26 14:32:09.642715 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     from paramiko.auth_handler import AuthHandler
[Wed Dec 26 14:32:09.642718 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/auth_handler.py", line 72, in <module>
[Wed Dec 26 14:32:09.642721 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     from paramiko.ssh_gss import GSSAuth, GSS_EXCEPTIONS
[Wed Dec 26 14:32:09.642724 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/paramiko/ssh_gss.py", line 45, in <module>
[Wed Dec 26 14:32:09.642730 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     from pyasn1.type.univ import ObjectIdentifier
[Wed Dec 26 14:32:09.642735 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pyasn1/type/univ.py", line 13, in <module>
[Wed Dec 26 14:32:09.642737 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     from pyasn1.compat import integer
[Wed Dec 26 14:32:09.642741 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/pyasn1/compat/integer.py", line 12, in <module>
[Wed Dec 26 14:32:09.642744 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     implementation = platform.python_implementation()
[Wed Dec 26 14:32:09.642748 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/platform.py", line 1265, in python_implementation
[Wed Dec 26 14:32:09.642751 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     return _sys_version()[0]
[Wed Dec 26 14:32:09.642755 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]   File "/home/sammy/python_envs/pgadmin/lib/python3.6/platform.py", line 1223, in _sys_version
[Wed Dec 26 14:32:09.642757 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046]     repr(sys_version))
[Wed Dec 26 14:32:09.642772 2018] [wsgi:error] [pid 59825] [remote W.X.Y.Z:38046] ValueError: failed to parse CPython sys.version: '3.6.7 (default, Oct 22 2018, 11:32:17) \\n[GCC 8.2.0]'

Полный список моих пакетов в среде conda:

# packages in environment at /home/michae/python_envs/pgadmin:
#
# Name                    Version                   Build  Channel
alembic                   1.0.5                     <pip>
argparse                  1.4.0                     <pip>
asn1crypto                0.24.0                    <pip>
Babel                     2.6.0                     <pip>
bcrypt                    3.1.5                     <pip>
blinker                   1.4                       <pip>
ca-certificates           2018.11.29           ha4d7672_0    conda-forge
certifi                   2018.11.29            py36_1000    conda-forge
cffi                      1.11.5                    <pip>
Click                     7.0                       <pip>
cryptography              2.4.2                     <pip>
cython                    0.29.2           py36hfc679d8_0    conda-forge
extras                    1.0.0                     <pip>
fixtures                  3.0.0                     <pip>
Flask                     0.12.4                    <pip>
Flask-BabelEx             0.9.3                     <pip>
Flask-Gravatar            0.5.0                     <pip>
Flask-HTMLmin             1.3.2                     <pip>
Flask-Login               0.3.2                     <pip>
Flask-Mail                0.9.1                     <pip>
Flask-Migrate             2.1.1                     <pip>
Flask-Paranoid            0.2.0                     <pip>
Flask-Principal           0.4.0                     <pip>
Flask-Security            3.0.0                     <pip>
Flask-SQLAlchemy          2.3.2                     <pip>
Flask-WTF                 0.14.2                    <pip>
html5lib                  1.0.1                     <pip>
htmlmin                   0.1.12                    <pip>
idna                      2.8                       <pip>
itsdangerous              1.1.0                     <pip>
Jinja2                    2.10                      <pip>
libffi                    3.2.1                hfc679d8_5    conda-forge
libgcc-ng                 7.2.0                hdf63c60_3    conda-forge
libstdcxx-ng              7.2.0                hdf63c60_3    conda-forge
linecache2                1.0.0                     <pip>
Mako                      1.0.7                     <pip>
MarkupSafe                1.1.0                     <pip>
ncurses                   6.1                  hfc679d8_2    conda-forge
openssl                   1.0.2p               h470a237_1    conda-forge
paramiko                  2.4.2                     <pip>
passlib                   1.7.1                     <pip>
pbr                       3.1.1                     <pip>
pgadmin4                  3.6                       <pip>
pip                       18.1                  py36_1000    conda-forge
psutil                    5.4.7                     <pip>
psycopg2                  2.7.6.1                   <pip>
pyasn1                    0.4.4                     <pip>
pycparser                 2.19                      <pip>
pycrypto                  2.6.1                     <pip>
PyNaCl                    1.3.0                     <pip>
pyrsistent                0.14.2                    <pip>
python                    3.6.7                h5001a0f_1    conda-forge
python-dateutil           2.7.5                     <pip>
python-editor             1.0.3                     <pip>
python-mimeparse          1.6.0                     <pip>
pytz                      2018.3                    <pip>
readline                  7.0                  haf1bffa_1    conda-forge
setuptools                40.6.3                   py36_0    conda-forge
simplejson                3.13.2                    <pip>
six                       1.12.0                    <pip>
speaklater                1.3                       <pip>
SQLAlchemy                1.2.15                    <pip>
sqlite                    3.26.0               hb1c47c0_0    conda-forge
sqlparse                  0.2.4                     <pip>
sshtunnel                 0.1.4                     <pip>
testtools                 2.3.0                     <pip>
tk                        8.6.9                ha92aebf_0    conda-forge
traceback2                1.4.0                     <pip>
unittest2                 1.1.0                     <pip>
webencodings              0.5.1                     <pip>
Werkzeug                  0.14.1                    <pip>
wheel                     0.32.3                   py36_0    conda-forge
WTForms                   2.1                       <pip>
xz                        5.2.4                h470a237_1    conda-forge
zlib                      1.2.11               h470a237_3    conda-forge

Также обратите внимание, что при использовании pgadmin приложение "напрямую" без Apache, т.е. просто сменив владельца /var/{lib,log}/pgadmin4 с www-data на sammy и выполнив команду ниже, все работает нормально:

source activate pgadmin
python ~/python_envs/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py

Я не эксперт, но этоКажется, есть некоторые проблемы с файлом Apache conf, который вызывает некоторые конфликты версий Python.И эти конфликты не происходят при выполнении непосредственно из среды и в обход Apache.Однако я совершенно не согласен с тем, как это исправить, и любая помощь будет очень признательна.

Как подсказывает в этом посте , я попытался запустить pip install mod_wsgi в своей виртуальной среде и скопировалвывод mod_wsgi-express module-config в файл конфигурации Apache (LoadModule wsgi_module "/home/sammy/python_envs/pgadmin/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so" в моем случае), но не повезло, та же ошибка.

...