Lorsque j'essaie d'importer psycopg2
il montre ci-dessous journal pour moi:
Traceback (most recent call last):
File "D:/Desktop/learn/python/webcatch/appserver/testpgsql.py", line 2, in <module>
import psycopg2
File "D:/Desktop/learn/python/webcatch/appserver/webcatch/lib/site-packages/psycopg2-2.6.1-py3.5-win32.Egg/psycopg2/__init__.py", line 50, in <module>
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: No module named 'psycopg2._psycopg'
Comment puis-je le résoudre? Ma plateforme est win10 (64) et sa version est python 3.5
Eureka! J'ai arraché mes cheveux pendant 2 jours en essayant de faire fonctionner cela. L'illumination vient de this SO Question . En termes simples, vous avez probablement installé la version psycopg2 x64 comme je l'ai fait, sans réaliser votre python était en 32 bits. Désinstallez votre psycopg2 actuel, puis:
Télécharger : psycopg2-2.6.1.win32-py3.4-pg9.4.4-release.exe de - ICI , puis exécutez ce qui suit dans un terminal:
C:\path\to\project> easy_install /path/to/psycopg2-2.6.1.win32-py3.4-pg9.4.4-release.exe
C:\path\to\project> python manage.py makemigrations
C:\path\to\project> python manage.py migrate
Vous devrez peut-être également (re) créer un super utilisateur avec:
C:\path\to\project> python manage.py createsuperuser
J'ai eu le même problème, je l'ai résolu de cette façon:
Réinstallez le package psycopg2
en utilisant pip
(installé par défaut avec python 3)
Sous Linux:
pip désinstaller psycopg2
Confirmez avec (y) puis:
pip installer psycopg2
Sous Windows, j'ajoute le préfixe ('python -m')
aux commandes ci-dessus. Je pense que le problème se produit lorsque vous modifiez la version de Python. (Même entre des versions mineures telles que Python 3.5 et 3.6).
Téléchargez la version compilée de psycopg2 à partir de ce lien https://github.com/jkehler/awslambda-psycopg2 . Comme psycopg2 est une bibliothèque C pour python, qui doit être compilée sur linux pour le faire fonctionner. L'instruction de compilation également donnée sur ce lien. Merci au https://github.com/jkehler .
Cela m'arrive aussi dans le nouveau Ubuntu 18.04. Cela est dû à l'absence d'un fichier _psycopg.py dans /usr/local/lib/python3.7/site-packages/psycopg2.
Il est fixé par:
pip3 uninstall psycopg2
.tar xvf psycopg2-2.7.7.tar.gz
python setup.py build
Sudo python setup.py install
J'ai eu cela sous Linux en utilisant Python 2 parce que j'avais accidentellement réglé mon PYTHONPATH sur Python 3 bibliothèques, et il essayait de charger la version python3 de psycopg2. La solution consistait à unset PYTHONPATH
.
J'utilise psycopg dans un travail de colle AWS, où il est plus difficile de suivre les instructions répertoriées dans les autres réponses.
Ce que j'ai fait, c'est d'installer psycopg2-binary dans un répertoire et Zip le contenu de ce répertoire:
mkdir psycopg2-binary
cd psycopg2-binary
pip install psycopg2-binary -t .
# in case using python3:
# python3 -m pip install --system psycopg2-binary -t .
Zip -r9 psycopg2.Zip *
J'ai ensuite copié psycopg2.Zip dans un compartiment S3 et je l'ai ajouté en tant que bibliothèque supplémentaire Python sous "Chemin de la bibliothèque Python" dans la tâche Glue Spark.
J'ai ensuite lancé le travail avec le script suivant pour vérifier si psycopg2 est présent (le fichier Zip sera téléchargé par Glue dans le répertoire dans lequel se trouve le script du travail)
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
import sys
import os
import zipfile
## @params: [JOB_NAME]
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args['JOB_NAME'], args)
Zip_ref = zipfile.ZipFile('./psycopg2.Zip', 'r')
print os.listdir('.')
Zip_ref.extractall('/tmp/packages')
Zip_ref.close()
sys.path.insert(0, '/tmp/packages')
import psycopg2
print(psycopg2.__version__)
job.commit()
J'ai appris que la plupart du temps, l'emballage WINDOWS ne va pas bien avec LAMBDA.
J'ai rencontré le même problème lors de l'exécution de LAMBDA avec le package tiers pscyopg2
Installé par WINDOWS.
étape1>
J'ai installé psycopg2
Sous Linux.
Copié les répertoires psycopg2_binary-2.8.2.dist-info
Et psycopg2
De Linux vers Windows.
étape2>
Avec la source *.py
, Empaquetée avec les dépendances tierces copiées psycopg2
Dans les fenêtres vers le fichier *.Zip
étape3>
Téléchargez le fichier sur LAMBDA - Voilà, il s'exécute avec succès sans aucune erreur.
J'ai eu la même erreur sur Windows, cela a fonctionné pour moi: pip install -U psycopg2
J'ai fait installer une ancienne version, je dois l'avoir dépréciée