Django psycopg2 imp公司

2024-05-28 06:30:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的电脑上安装了psycopg2 C:\Python34\Lib\site-packages\psycopg2 如果我在虚拟环境之外的django项目中使用postgresql数据库,则不会得到错误。但是,当我想将项目转移到虚拟env以便可以在heroku上部署它时。但是当我试图迁移数据库时,我得到一个错误消息,说psycopg2 module不存在。我甚至试图用pip install psycopg2将其安装到虚拟环境中,但都没用。这是完整的回溯。在

(denv) C:\Users\Saket\denv\musicalguru>python manage.py migrate
  Traceback (most recent call last):
  File "C:\Users\Saket\denv\lib\site- packages\django\db\backends\postgresql_psycopg2\base.py", line 20, in <module>
  import psycopg2 as Database
  File "C:\Users\Saket\denv\lib\site-packages\psycopg2\__init__.py", line 50, in<module>from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
  ImportError: DLL load failed: The specified module could not be found.

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
  File "manage.py", line 10, in <module>
  execute_from_command_line(sys.argv)
  File  "C:\Users\Saket\denv\lib\sitepackages
  \django\core\management\__init__.py", line 338, in execute_from_command_line
  utility.execute()
  File "C:\Users\Saket\denv\lib\site-   packages\django\core\management\__init__.py", line 312, in execute
  django.setup()
  File "C:\Users\Saket\denv\lib\site-packages\django\__init__.py", line 18, in setup
  apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\Saket\denv\lib\site-packages\django\apps\registry.py", line 108, in populate
  app_config.import_models(all_models)
  File "C:\Users\Saket\denv\lib\site-packages\django\apps\config.py", line 198,in import_models
  self.models_module = import_module(models_module_name)
   File "C:\Users\Saket\denv\lib\importlib\__init__.py", line 109, in  import_module
   return _bootstrap._gcd_import(name[level:], package, level)
   File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
   File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
    File "<frozen importlib._bootstrap>", line 2226, in  _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
    File "<frozen importlib._bootstrap>", line 1129, in _exec
    File "<frozen importlib._bootstrap>", line 1471, in exec_module
    File "<frozen importlib._bootstrap>", line 321, in  _call_with_frames_removed
   File "C:\Users\Saket\denv\lib\site- packages\django\contrib\auth\models.py", line 41, in <module>
   class Permission(models.Model):
   File "C:\Users\Saket\denv\lib\site-packages\django\db\models\base.py", line 139, in __new__
    new_class.add_to_class('_meta', Options(meta, **kwargs))
   File "C:\Users\Saket\denv\lib\site-packages\django\db\models\base.py", line 324, in add_to_class
   value.contribute_to_class(cls, name)
   File "C:\Users\Saket\denv\lib\site-packages\django\db\models\options.py", line 250, in contribute_to_class
   self.db_table = truncate_name(self.db_table,  connection.ops.max_name_length())
   File "C:\Users\Saket\denv\lib\site-packages\django\db\__init__.py", line 36, in __getattr__
   return getattr(connections[DEFAULT_DB_ALIAS], item)
   File "C:\Users\Saket\denv\lib\site-packages\django\db\utils.py", line 240, in__getitem__
   backend = load_backend(db['ENGINE'])
   File "C:\Users\Saket\denv\lib\site-packages\django\db\utils.py", line 111, in
   load_backend
   return import_module('%s.base' % backend_name)
   File "C:\Users\Saket\denv\lib\importlib\__init__.py", line 109, in   import_module
   return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
     File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
     File "<frozen importlib._bootstrap>", line 2226, in  _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
    File "<frozen importlib._bootstrap>", line 1129, in _exec
    File "<frozen importlib._bootstrap>", line 1471, in exec_module
    File "<frozen importlib._bootstrap>", line 321, in  _call_with_frames_removed
    File   "C:\Users\Saket\denv\lib\sitepackages\django\db\backends\postgresql_psyc
    opg2\base.py", line 24, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
    django.core.exceptions.ImproperlyConfigured: Error loading psycopg2  module: DLL
    load failed: The specified module could not be found.

Tags: djangoinpylibpackageslinesiteimportlib
2条回答

我使用了从here在virtual env中安装的说明

然后在系统的路径上添加了sql和postbin的目录。这似乎起到了作用。在

psycopg2从源代码移植到windows下的virtualenv是一件痛苦的事。在

相反,您可以创建可以访问系统范围内已安装软件包的virtualenv。在

virtualenv  system-site-packages env_dir

相关问题 更多 >