ImportError: невозможно импортировать имя ConnectionPool - PullRequest
0 голосов
/ 28 мая 2019

Во время тестирования моего приложения с использованием тестов носа.Я получаю некоторую ошибку, связанную с ошибкой импорта:

Команда, которую я использую в Linux CLI: nosetests -m test_file

======================================================================
ERROR: Failure: ImportError (cannot import name ConnectionPool)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
    addr.filename, addr.module)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/usr/lib/ckan/default/src/ckan/ckan/tests/views/test_admin.py", line 10, in <module>
    import ckan.tests.helpers as helpers
  File "/usr/lib/ckan/default/src/ckan/ckan/tests/helpers.py", line 32, in <module>
    import rq
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/rq/__init__.py", line 6, in <module>
    from .connections import (Connection, get_current_connection, pop_connection,
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/rq/connections.py", line 7, in <module>
    from redis import StrictRedis
  File "/usr/lib/ckan/default/src/ckan/ckan/lib/redis.py", line 15, in <module>
    from redis import ConnectionPool, Redis
ImportError: cannot import name ConnectionPool
-------------------- >> begin captured logging << --------------------
pyutilib.component.core.pca: DEBUG: Creating PluginEnvironment 'pca'
pyutilib.component.core.<default>: DEBUG: Creating PluginEnvironment '<default>'
pyutilib.component.core.<default>: DEBUG: Pushing environment '<default>' on the PluginGlobals stack
pyutilib.component.core.pca: DEBUG: Pushing environment 'pca' on the PluginGlobals stack
pyutilib.component.core.pca: DEBUG: Pushing environment 'pca' on the PluginGlobals stack
pyutilib.component.core.pca: INFO: Adding service IgnorePluginPlugins to environment pca
pyutilib.component.core.pca: INFO: Adding service IgnorePluginPlugins to environment pca
pyutilib.component.core.pca: DEBUG: Popping environment 'pca' from the PluginGlobals stack
passlib.utils.compat: DEBUG: loaded lazy attr 'BytesIO': <built-in function StringIO>
passlib.registry: DEBUG: registered 'pbkdf2_sha512' handler: <class 'passlib.handlers.pbkdf2.pbkdf2_sha512'>
--------------------- >> end captured logging << ---------------------

----------------------------------------------------------------------
Ran 1 test in 0.001s

Я искал ее и обнаружил, что мой redis.Я полагаю, что py вызывается до модуля redis.

Для получения дополнительной информации: https://gist.github.com/camfindlay/a8c080435960fe87388474839418f0f0#file-gistfile1-txt-L154

Итак, для этого я установил PYTHONPATH и PATH.

Вывод echo $ PATH выглядит следующим образом:

echo $PATH
/usr/lib/ckan/default/bin:/home/ubuntu64/bin:/home/ubuntu64/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/bin/python

Но я все еще не могу решить проблему.

Обновление1: Вложение журналов ошибок, появляющихся на экране:

enter image description here

1 Ответ

1 голос
/ 28 мая 2019

Похоже, файл в /ckan/lib/redis.py конфликтует с вашим пакетом redis.

Можно ли использовать виртуальную среду и установить все зависимости?

После того, как вы закончите с этим, вы можете использовать следующий код -

from .redis import *  #For importing something from your redis.py
from redis import ConnectionPool  #For importing from redis module

Надеюсь, это поможет. Приветствия.

...