python - 无法在 Windows 上安装 psycopg2 以使用 pgloader

标签 python windows postgresql pip psycopg2

我需要将 csv 文件的内容上传到 PostgreSQL。内容不完美且包含错误,所以我不能只使用 COPY 命令,我需要跳过虚线。

所以我决定使用 pgloader-2.3.2

我有 Win8 x64Python 2.7.6 x64pip 1.5.6

Pgloader 需要 psycopg2 我按照描述安装了它 here :

pip install git+https://github.com/nwcell/psycopg2-windows.git@win64-py27#egg=psycopg2

现在我在列表中看到了它:

C:\dev\tools\pgloader-2.3.2>pip list
pip (1.5.6)
psycopg2 (2.5.2)
setuptools (3.6)

但是我的 Python 看不到它:

>>> import psycopg2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named psycopg2
>>> 
>>> import sys
>>> print sys.path
['', 'C:\\Windows\\SYSTEM32\\python27.zip', 'C:\\dev\\tools\\Python27\\DLLs', 'C:\\dev\\tools\\Python27\\lib', 'C:\\dev\\tools\\Python27\\lib\\plat-win', 'C:\\dev\\tools\\Python27\\lib\\lib-tk', 'C:\\dev\\tools\\Python27', 'C:\\dev\\tools\\Python27\\lib\\site-packages']

我去了 C:\dev\tools\Python27\Lib\site-packages\ 目录,发现那里只有 psycopg2-2.5.2-py2.7.egg-info 目录(没有 psycopg2 或类似的东西)。

如何解决这个问题?我已经花了大约一天的时间来解决一堆问题,现在这个问题......真令人沮丧,如此原始的任务需要如此多的努力。

最佳答案

我尝试使用 GitHub repo 在 Windows 上安装 psycopg2 ,但有一个类似的问题,因为我选择了错误的版本(32 位而不是 64 位)。 PIP 告诉我 psycopg2 已成功安装,但尝试运行时我收到了相同的消息:

ImportError: No module named psycopg2

卸载并再次尝试,使用正确的版本,我收到了警告:

pip can't proceed with requirement 'psycopg2 from git+https://github.com/nwcell/psycopg2-windows.git@win32-py34' due to a pre-existing build directory. location: C:\Users\ADMINI~1\AppData\Local\Temp\2\pip_build_Administrator\psycopg2 This is likely due to a previous installation that failed. pip is being responsible and not assuming it can delete this. Please delete it and try again.

清理文件夹 C:\Users\my_username\AppData\Local\Temp\2\pip_build_my_username 并再次尝试后,我成功地安装了它。


正如评论中所指出的,另一种方法是使用以下方式安装二进制文件:http://www.stickpeople.com/projects/python/win-psycopg/

关于python - 无法在 Windows 上安装 psycopg2 以使用 pgloader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23854242/

相关文章:

python - 如何在使用 Flask/Socketio 中服务器接口(interface)的服务器端生成 'dummy clients'

postgresql - 加密 PostgreSQL 数据库并从 Web 应用程序用户处获取 key

postgresql - 角色 "postgres"不存在;无法创建用户

windows - 如何找到 Apache 的 httpd.exe 安装位置?

windows - 批处理脚本 (Windows) 字符串替换

java - IntelliJ错误打开zip文件或JAR list 丢失

postgresql - Postgres 列类型转换

python - Django Hive 连接

python - 在列 * 和 * 索引上使用 groupby 和聚合与 Pandas 数据框

python - PIL Image.open 和 cv2.imdecode 的区别