Нос жалуется в Python 3, но не 2


Я написал тесты с использованием фреймворка Python unittest и запустил их с помощью Nose в Python 2.7 на Win7 x64, и они отлично работают:

D:UsersNickLocal HGWaldocodesharedcollider>py -2 -mnose
.............
----------------------------------------------------------------------
Ran 13 tests in 0.039s

OK

Однако, когда я запускаю их под Python 3.4, я получаю необъяснимую ошибку

D:UsersNickLocal HGWaldocodesharedcollider>py -3 -mnose
E
======================================================================
ERROR: Failure: ValueError ('D:\Users\Nick\Local HG\Waldo\code\shared\__init__.py\__init__.pyw\__init__.pyc' is
 not a package)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:Python34libsite-packagesnosefailure.py", line 39, in runTest
    raise self.exc_val.with_traceback(self.tb)
  File "D:Python34libsite-packagesnoseloader.py", line 414, in loadTestsFromName
    addr.filename, addr.module)
  File "D:Python34libsite-packagesnoseimporter.py", line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "D:Python34libsite-packagesnoseimporter.py", line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "D:Python34libimp.py", line 245, in load_module
    return load_package(name, filename)
  File "D:Python34libimp.py", line 210, in load_package
    raise ValueError('{!r} is not a package'.format(path))
ValueError: 'D:\Users\Nick\Local HG\Waldo\code\shared\__init__.py\__init__.pyw\__init__.pyc' is not a package

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

FAILED (errors=1)

Моя структура пакета:

collider
  |- tests
  |    |- __init__.py
  |    |- test_removing_chains.py
  |
  |- __init__.py
  |- collider.py
  |- viz.py

Я не знаю, где это"...\__init__.py\__init__.pyw\__init__.pyc" бит исходит из ошибки, или почему он даже поднимается вверх по папке (collider получает топор от пути, по-видимому), хотя я буду запускать программу либо в корневом каталоге пакета, либо из Папка tests (та же ошибка).

1 2

1 ответ:

После удаления лишних __init__.py и .pyc файлов вверх по нескольким путям, как было предложено, проблема исчезла.

К сожалению, однако, я удалил кучу сразу и добавление их обратно по одному не воссоздало проблему, так что я не мог выделить, что было ключевым моментом неудачи.