sap*_*ppy 10 psycopg2 importerror python-3.x
当我尝试导入时,psycopg2它显示在我的下面日志:
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'
Run Code Online (Sandbox Code Playgroud)
我该如何解决?我的平台是win10(64),版本是python 3.5
Mat*_*ber 14
找到了!我把头发拉了两天试图让它发挥作用.启蒙来自这个SO问题.简单地说,你可能像我一样安装了psycopg2 x64版本,没有意识到你的python版本是32位.取消当前的psycopg2,然后:
从HERE 下载:psycopg2-2.6.1.win32-py3.4-pg9.4.4-release.exe,然后在终端中运行以下命令:
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
Run Code Online (Sandbox Code Playgroud)
您可能还需要(重新)创建超级用户:
C:\path\to\project> python manage.py createsuperuser
Run Code Online (Sandbox Code Playgroud)
从此链接https://github.com/jkehler/awslambda-psycopg2下载 psycopg2 的编译版本。由于 psycopg2 是 python 的 C 库,需要在 linux 上编译才能运行。该链接上也给出了编译指令。感谢https://github.com/jkehler。
我遇到了同样的问题,以这种方式解决了它:
psycopg2使用pip(默认安装python 3)重新安装包
在 Linux 上:
pip卸载psycopg2
用 (y) 确认,然后:
pip 安装 psycopg2
在 Windows 上,我将前缀添加('python -m')到上述命令中。我认为当您更改 Python 版本时会出现问题。(即使在 Python 3.5 和 3.6 等次要版本之间)。
在新的 Ubuntu 18.04 中,这也发生在我身上。这是由于/usr/local/lib/python3.7/site-packages/psycopg2中缺少一个文件_psycopg.py引起的。
它是通过以下方式固定的:
pip3 uninstall psycopg2。tar xvf psycopg2-2.7.7.tar.gzpython setup.py buildsudo python setup.py install我在 AWS Glue 作业中使用了 psycopg,其中更难遵循其他答案中列出的说明。
我所做的是将 psycopg2-binary 安装到一个目录中并压缩该目录的内容:
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 *
Run Code Online (Sandbox Code Playgroud)
然后,我将 psycopg2.zip 复制到 S3 存储桶,并将其添加为 Glue Spark 作业中“Python 库路径”下的额外 Python 库。
然后我使用以下脚本启动作业以验证是否存在 psycopg2(Zip 文件将由 Glue 下载到作业脚本所在的目录中)
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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21684 次 |
| 最近记录: |