我使用https://github.com/nwcell/psycopg2-windows和https://bitbucket.org/topper/psycopg2-win64-py27/overview上的文章来安装psycopg2并使用Python2.7和Cygwin。
安装运行正常,我在/usr/lib/python2.7/site-packages/psycopg2-2.5.3-py2.7.egg/目录中看到了包。
然而导入不起作用..对此错误有任何想法吗?
Python 2.7.8 (default, Jul 25 2014, 14:04:36)
[GCC 4.8.3] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import psycopg2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/psycopg2-2.5.3-py2.7.egg/psycopg2/__init__.py", line 50, in <module>
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: No module named _psycopg
谢谢, 和Manish
答案 0 :(得分:1)
我收到了这组确切的消息 - 但不是在我当地的Cygwin / Babun开发环境中 - 当我推送到RHEL 7服务器进行测试时,我得到了它们。需要两天的时间来清除它,我如何解决它可能不适用于你。但我学会了一些可能做的事情。
这些错误的另一个原因在于这些错误报告(Python和psycopg互相指责) - 并且通常不值得阅读 - 在下面阅读:
它的要点?寻找一些更新 - 看起来他们可能都做了一些影响这一点的小改动。
无论如何......这就是我在Cygwin中安装 psycopg2 的方式(假设Babun的 pact 安装程序可用):
pact install libpq-devel
pip install psycopg2
安装 libpq-devel 的替代方法是安装Windows Postgres并将其pg_config
文件的位置添加到PATH中,以便 pip 可以编译< strong> psycopg2 - 但是从Cygwin shell中安装 libpq-devel 更干净,并且将pg_config
置于 pip 已经可以找到它。
我在虚拟环境中安装了 pyscopg2 ,但这应该不重要。然而,重要的可能是以下之一:
sys.path
值,以确保它看起来像您期望的那样。根据您发布的内容,这似乎不是您的问题,但我提到它是因为这最终是我在RHEL 7上的问题以及Apache如何加载虚拟环境。 ----(这里只是另一个注释:我最终通过为Python 3.4.3编译另一个 mod_wsgi 来解决RHEL问题,根据他们的说明,来匹配我的虚拟环境。之前的 mod_wsgi 在Python 2.7.5下运行,该版本无法从C库导入_psycopg
。此外,我根本不想运行2.7。)答案 1 :(得分:0)
Env = python 2.7.10(cygwin发行版),Windows 7,Cygwin 64
1)pip install psycopg2失败,因为我没有pip 调试
2)从这里安装点子:pip.pypa.io/en/stable/installing /
3)pip install psycopg2由于'no pg_config ...'
而失败 4)winyc的psycopg2安装程序(www.stickpeople.com/projects/python/win-psycopg/)失败,因为我使用cygwin的python安装,而不是机器注册表中的python,这个安装程序不允许用户安装在Windows注册的python以外的任何其他地方 (安装程序成功,但文件不是我需要的地方。) (“复制”文件不起作用。)5)这个(https://github.com/nwcell/psycopg2-windows)pip安装“工作”(没有错误)但是当我尝试导入时,我收到了消息: “ImportError:没有名为psycopg2的模块”
6)pip uninstall psycopg2
7)尝试pip install libpq-dev和python-dev “找不到满足libpq-dev要求的版本(来自版本:) 找不到与libpq-dev相匹配的分发“
8)安装了Postgres&amp; pg_config来自http://www.enterprisedb.com/products-services-training/pgdownload#windows
9)将pg_config添加到路径
10)pip install psycopg2现在正常工作
11)在.py文件中导入psycopg2导致核心转储
堆栈跟踪: 帧功能参数 006001A5A60 0018007261A(000FFFFE3F4,0000000E514,00000000000,000FFFFDE50) 006001A5B00 00180073DD0(00077801FD6,00000000000,00000000140,00000000000) 006001A5D50 0018012EF8F(00600010540,00000000000,003DB05FDB0,6FFFFF28050) 006001A6040 0018012BC70(0000000000D,00000000000,00000000000,0018013D7DA) 00000000000 0018012C139(006001A6030,3630303030303030,3036303030303030,00000 00000B) 00000000000 0018012C30C(00000000000,10000000A8E73,6F007000650072,61006C0074 0072) 00000000000 00180127BFB(00000000000,10000000A8E73,6F007000650072,61006C0074 0072) 00000000000 00180071169(01000000010,00000000000,00000000000,000FFFFCE00) 000FFFFAA00 00180073D11(B64000B00630079,00000000088,1D17578E1C375D4,1D17578 E16661AE) 52004F00520052 64006F00630072(00000000088,1D17578E1C375D4,1D17578E16661AE,1 D175A09055FB4F) 52004F00520052 70002E00730065(1D17578E1C375D4,1D17578E16661AE,1D175A09055FB4 F,1D175A09055FB4F) 52004F00520052 B64000B00630079(1D17578E16661AE,1D175A09055FB4F,1D175A09055FB 4F,0000000180B) 52004F00520052 00000000088(1D175A09055FB4F,1D175A09055FB4F,0000000180B,0000 0002000) 52004F00520052 1D17578E1C375D4(1D175A09055FB4F,0000000180B,00000002000,01A0 0000020) 52004F00520052 1D17578E16661AE(0000000180B,00000002000,01A00000020,45001600 000000) 52004F00520052 1D175A09055FB4F(00000002000,01A00000020,45001600000000,4E004 500540058) 堆栈跟踪结束(可能存在更多堆栈帧)
(上面花了~2天。)
12)pip install pg8000工作
13)将pg8000导入.py文件并连接到DB (步骤12和13耗时约20分钟。)
答案 2 :(得分:0)
安装libpq
是必须的,有时不会安装libpq-devel
的一部分。截至目前,我已成功安装libpq5
。
答案 3 :(得分:0)
您必须使用Cygwin package installer
安装两个软件包中的两个软件包:
libecpg6
,获得psycopg2
运行时库支持,如果没有它,您将获得
'ImportError: No module named _psycopg' when you run your script.
libecpg-devel
,如果不使用它编译psycopg2
,您会得到很多
例如使用pip工具安装psycopg2时出现pthread_***
错误。随着时间的流逝,那些软件包的名称可能会更改,但是您应该知道这是什么。 你不足。