2016-12-21 4 views
7

J'ai installé postgresql 9.6 (en utilisant le programme d'installation Linux suggéré) fourni avec pgAdmin4, mais avec quelques erreurs. D'abord, j'ai dû changer le nom du dossier de "pgAdmin 4" (notez l'espace supplémentaire) à "pgAdmin4" pour éviter "l'erreur de fichier introuvable".Erreur lors de l'exécution de pgAdmin4

Alors je cours sudo python pgAdmin4.py et obtenu l'erreur suivante:

Traceback (most recent call last): 
    File "../../pgAdmin4.py", line 24, in <module> 
     from pgadmin import create_app 
    File "/opt/PostgreSQL/9.6/pgAdmin4/web/pgadmin/__init__.py", line 17, in <module> 
     from flask import Flask, abort, request, current_app 
ImportError: No module named flask 

J'ai essayé la suite de cette question connexe: Flask ImportError: No Module Named Flask - a réussi à flacon installé sur virtualenv.

Mais j'ai commencé à trouver d'autres modules relatifs aux flask qui manquent: flask_babel, flask_login, flask_security. J'ai installé chacun d'eux en utilisant pip, mais ensuite j'ai eu une erreur sur le module manquant htmlmin.minify que je ne peux pas sembler capable d'installer.

Traceback (most recent call last): 
    File "../pgAdmin4.py", line 24, in <module> 
     from pgadmin import create_app 
    File "/opt/PostgreSQL/9.6/pgAdmin4/web/pgadmin/__init__.py", line 23, in <module> 
     from htmlmin.minify import html_minify 
ImportError: No module named htmlmin.minify 

J'ai aussi exporté PYTHONPATH à celui sur flacon, comme décrit here, obtenant toujours la même erreur.

Alors, quelqu'un a une idée de comment faire fonctionner pgAdmin4 sur un environnement ubuntu?

+0

Avez-vous installé virtualenv? Essaies-tu de tout faire depuis l'intérieur de virtualenv? – Nurjan

+0

J'ai installé virtualenv mais il se peut que je ne cours pas réellement à partir de ce env virtuel? comment puis-je m'assurer? –

+0

Vous devez activer virtualenv en exécutant '. venv/bin/activate' où venv est le résultat de 'virtualenv venv'. Insted point, vous pouvez utiliser la commande 'source'. – Nurjan

Répondre

4

Selon https://www.pgadmin.org/download/pip4.php.

Installer le virtualenv en exécutant:

sudo apt-get install virtualenv 

Vous devez également installer ces 2 bibliothèques:

sudo apt-get install libpq-dev python-dev 

Puis:

cd ~/bin/ 
virtualenv pgadmin4 

Je préfère utiliser le répertoire ~/bin/ pour installer des applications.

Ensuite, vous téléchargez le pgadmin4-1.1-py2-none-any.whl ou pgadmin4-1.1-py3-none-any.whl en fonction de la version python que vous utilisez. Pour cet exemple, nous utilisons python 2.7.

Vous télécharger pgadmin4:

wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.1/pip/pgadmin4-1.1-py2-none-any.whl 

Activez la virtualenv:

. ~/bin/pgadmin4/bin/activate 

Après cela, vous verrez (pgadmin4) dans le terminal.

A l'intérieur de la course pgadmin4:

pip install ./pgadmin4-1.1-py2-none-any.whl 

Après que vous devez être en mesure d'exécuter pgadmin4:

python ~/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py 

Afin de rendre le processus en cours d'exécution un peu plus facile, vous pouvez créer un alias. Par exemple, dans Ubuntu 16.04 LTS, alias ajouter dans le fichier ~/.bash_aliases:

alias pgadmin4='. /home/your_username/bin/pgadmin4/bin/activate; /home/your_username/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py' 

your_username doit être remplacé par votre nom d'utilisateur réel.

Ensuite, donner l'autorisation d'exécution, par exemple, 764 au fichier pgAdmin4.py dans:

/home/your_username/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py 

vous devez également modifier le fichier pgAdmin4.py et ajoutez cette ligne dans le très haut:

#!/home/your_username/bin/pgadmin4/bin/python 

your_username est votre vrai nom d'utilisateur. Cela s'assurera que vous exécutez l'application en utilisant la version requise de python et incluez toutes les dépendances nécessaires afin de lancer pgadmin4.

Ensuite, exécutez . ~/.bashrc afin d'appliquer les modifications.

Alors maintenant vous pouvez ouvrir votre terminal et tapez simplement pgadmin4 pour l'exécuter.

Ouvrez votre navigateur et pointez vers:

http://127.0.0.1:5050 

Une chose à noter - si vous devez exécuter pgadmin4 en mode bureau vous devez changer SERVER_MODE False dans:

/home/your_username/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/config.py 

Dans le cas contraire Lorsque vous visitez localhost: 5050, il vous demandera votre identifiant et votre mot de passe.

Espérons que cela aide.

+0

Donc créer un répertoire avec un virtualenv que vous utilisez et ensuite le démarrer est logique. Ce qui semble étrange, c'est que vous devez ensuite pointer vers l'emplacement du fichier dans les paquets de site de python 2.7 pour démarrer l'application. Cela ne semble-t-il pas un peu compliqué? Est-ce vraiment le flux de travail prévu que l'on doit suivre chaque fois qu'ils veulent démarrer PgAdmin4? – kuanb

+1

@kuanb, Selon le site officiel https://www.pgadmin.org/download/pip4.php vous devez utiliser ce chemin dans les paquets de site python 2.7 'afin d'exécuter pgadmin4. Comme une solution de contournement j'ai fait un alias où j'active le virtualenv et puis exécute le pgadmin4 et cela fonctionne bien. Je vais modifier la réponse pour montrer comment cela fonctionne. – Nurjan

+0

@Nurzhan Je pense qu'il vous manque "python" avant d'appeler le fichier pgadmin4.py dans votre définition d'alias. – newdimension

1

S'il vous plaît, essayez ces commandes:

sudo apt-get install pgadmin4 

sudo python3.5 /usr/share/pgadmin4/web/pgAdmin4.py 
+0

et ensuite vous devez installer chaque extension de flacon à votre installation de python 3.5 – Abdelouahab