我在虚拟环境中安装了psycopg2,但仍然得到importerror psycopg2

时间:2014-10-11 11:17:22

标签: python windows postgresql flask-sqlalchemy psycopg2

我按照以下步骤操作:[我正在使用Windows 8,Python 2.7.6]

  1. 我创建了一个虚拟环境venv,然后在requirements.txt上安装了pip来安装所有库。
  2. 我必须显式创建一个名为config.py的文件来设置os.environ变量。然后,我在其他文件中进行导入配置。
  3. 我已经安装了postgresql并将bin文件夹添加到环境路径
  4. psycopg2无法通过运行requirements.txt进行安装。所以,我从网上下载了带有setup.py的zip,并在virtial环境中运行了setup.py。后来当我在虚拟环境中执行“pip install psycopg2”时,它表示要求已经满足。
  5. 现在我运行了venv / Scripts / .py并收到以下错误:
  6. Traceback (most recent call last):
      File "remote-alert.py", line 5, in <module>
        from database import db_session
      File "d:\Documents\Tutorials\Technologies\inMobi\soynerdito\HobbesAlert\databa
    se.py", line 12, in <module>
        isolation_level="READ UNCOMMITTED" )
      File "d:\Documents\Tutorials\Technologies\inMobi\soynerdito\HobbesAlert\venv\l
    ib\site-packages\sqlalchemy\engine\__init__.py", line 344, in create_engine
        return strategy.create(*args, **kwargs)
      File "d:\Documents\Tutorials\Technologies\inMobi\soynerdito\HobbesAlert\venv\l
    ib\site-packages\sqlalchemy\engine\strategies.py", line 73, in create
        dbapi = dialect_cls.dbapi(**dbapi_args)
      File "d:\Documents\Tutorials\Technologies\inMobi\soynerdito\HobbesAlert\venv\l
    ib\site-packages\sqlalchemy\dialects\postgresql\psycopg2.py", line 401, in dbapi
    
    import psycopg2
    ImportError: No module named psycopg2
    

    在错误输出中,正在访问的文件psycopg2.py存在于给定路径中。那我为什么会收到错误?

    我检查了许多在线提供的解决方案,比如postgresql必须在PATH中安装bin文件夹。我应该只使用虚拟env python.exe来运行我的程序,我不应该以超级用户身份运行它等。直到现在我都没有用。

    请帮忙!

2 个答案:

答案 0 :(得分:0)

不幸的是,psycopg2需要在每个架构上编译;我相信如果你检查了pip install psycopg2的输出,你会注意到一些错误(尽管最终它会最终安装它)。

最好安装预编译的Windows二进制文件,您可以找到at this website

答案 1 :(得分:0)

我在Windows中遇到了同样的问题,因为我在系统python和虚拟环境中都安装了psycopg2,我发现LIB/site-packages两者都有一个名为psycopg2的文件夹在虚拟环境中,内容较少。

当我将系统Lib\site-packages\psycopg2的内容复制到虚拟环境中相应文件的内容时,它运行良好。