Darkflow - нет модуля с именем darkflow.cython_utils.cy_yolo_findboxes - PullRequest
0 голосов
/ 30 сентября 2018

Я успешно установил darkflow-1.0.0 (https://github.com/thtrieu/darkflow) в Windows 10 с помощью команды pip install ..

Successfully built darkflow
Installing collected packages: darkflow
  Found existing installation: darkflow 1.0.0
    Uninstalling darkflow-1.0.0:
      Successfully uninstalled darkflow-1.0.0
Successfully installed darkflow-1.0.0

После этого я пытаюсь запустить python flow --h, которая выдает мне следующую ошибку:

Traceback (most recent call last):
  File "flow", line 4, in <module>
    from darkflow.cli import cliHandler
  File "C:\Users\filda\Desktop\FIT_VUT\BP\YOLO\YOLO_keras\darkflow\darkflow\cli.py", line 3, in <module>
    from .net.build import TFNet
  File "C:\Users\filda\Desktop\FIT_VUT\BP\YOLO\YOLO_keras\darkflow\darkflow\net\build.py", line 7, in <module>
    from .framework import create_framework
  File "C:\Users\filda\Desktop\FIT_VUT\BP\YOLO\YOLO_keras\darkflow\darkflow\net\framework.py", line 1, in <module>
    from . import yolo
  File "C:\Users\filda\Desktop\FIT_VUT\BP\YOLO\YOLO_keras\darkflow\darkflow\net\yolo\__init__.py", line 2, in <module>
    from . import predict
  File "C:\Users\filda\Desktop\FIT_VUT\BP\YOLO\YOLO_keras\darkflow\darkflow\net\yolo\predict.py", line 7, in <module>
    from ...cython_utils.cy_yolo_findboxes import yolo_box_constructor
ModuleNotFoundError: No module named 'darkflow.cython_utils.cy_yolo_findboxes'

Поэтому я попытался построить расширения Cython с помощью команды python setup.py build_ext --inplace, которая выдает мне следующую ошибку:

(base) C:\Users\filda\Desktop\FIT_VUT\BP\YOLO\YOLO_keras\darkflow-master>python setup.py build_ext --inplace
running build_ext
building 'darkflow.cython_utils.nms' extension
creating build\temp.win-amd64-3.5
creating build\temp.win-amd64-3.5\Release
creating build\temp.win-amd64-3.5\Release\darkflow
creating build\temp.win-amd64-3.5\Release\darkflow\cython_utils
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\HostX64\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -IC:\Users\filda\Anaconda3\lib\site-packages\numpy\core\include -IC:\Users\filda\Anaconda3\include -IC:\Users\filda\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\Include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\ATLMFC\Include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" /Tcdarkflow/cython_utils/nms.c /Fobuild\temp.win-amd64-3.5\Release\darkflow/cython_utils/nms.obj
nms.c
c1: fatal error C1083: Cannot open source file: 'darkflow/cython_utils/nms.c': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.15.26726\\bin\\HostX64\\x64\\cl.exe' failed with exit status 2

pipshow -f darkflow:

Name: darkflow
Version: 1.0.0
Summary: Darkflow
Home-page: https://github.com/thtrieu/darkflow
Author: UNKNOWN
Author-email: UNKNOWN
License: GPLv3
Location: c:\users\filda\anaconda3\lib\site-packages
Requires:
Required-by:
Files:
  ..\..\Scripts\flow
  darkflow-1.0.0.dist-info\INSTALLER
  darkflow-1.0.0.dist-info\METADATA
  darkflow-1.0.0.dist-info\RECORD
  darkflow-1.0.0.dist-info\WHEEL
  darkflow-1.0.0.dist-info\top_level.txt
  darkflow\__init__.py
  darkflow\__pycache__\__init__.cpython-35.pyc
  darkflow\__pycache__\cli.cpython-35.pyc
  darkflow\__pycache__\defaults.cpython-35.pyc
  darkflow\__pycache__\version.cpython-35.pyc
  darkflow\cli.py
  darkflow\cython_utils\__init__.py
  darkflow\cython_utils\__pycache__\__init__.cpython-35.pyc
  darkflow\cython_utils\cy_yolo2_findboxes.cp35-win_amd64.pyd
  darkflow\cython_utils\cy_yolo_findboxes.cp35-win_amd64.pyd
  darkflow\cython_utils\nms.cp35-win_amd64.pyd
  darkflow\dark\__init__.py
  darkflow\dark\__pycache__\__init__.cpython-35.pyc
  darkflow\dark\__pycache__\connected.cpython-35.pyc
  darkflow\dark\__pycache__\convolution.cpython-35.pyc
  darkflow\dark\__pycache__\darknet.cpython-35.pyc
  darkflow\dark\__pycache__\darkop.cpython-35.pyc
  darkflow\dark\__pycache__\layer.cpython-35.pyc
  darkflow\dark\connected.py
  darkflow\dark\convolution.py
  darkflow\dark\darknet.py
  darkflow\dark\darkop.py
  darkflow\dark\layer.py
  darkflow\defaults.py
  darkflow\net\__init__.py
  darkflow\net\__pycache__\__init__.cpython-35.pyc
  darkflow\net\__pycache__\build.cpython-35.pyc
  darkflow\net\__pycache__\flow.cpython-35.pyc
  darkflow\net\__pycache__\framework.cpython-35.pyc
  darkflow\net\__pycache__\help.cpython-35.pyc
  darkflow\net\build.py
  darkflow\net\flow.py
  darkflow\net\framework.py
  darkflow\net\help.py
  darkflow\net\ops\__init__.py
  darkflow\net\ops\__pycache__\__init__.cpython-35.pyc
  darkflow\net\ops\__pycache__\baseop.cpython-35.pyc
  darkflow\net\ops\__pycache__\convolution.cpython-35.pyc
  darkflow\net\ops\__pycache__\simple.cpython-35.pyc
  darkflow\net\ops\baseop.py
  darkflow\net\ops\convolution.py
  darkflow\net\ops\simple.py
  darkflow\net\vanilla\__init__.py
  darkflow\net\vanilla\__pycache__\__init__.cpython-35.pyc
  darkflow\net\vanilla\__pycache__\train.cpython-35.pyc
  darkflow\net\vanilla\train.py
  darkflow\net\yolo\__init__.py
  darkflow\net\yolo\__pycache__\__init__.cpython-35.pyc
  darkflow\net\yolo\__pycache__\data.cpython-35.pyc
  darkflow\net\yolo\__pycache__\misc.cpython-35.pyc
  darkflow\net\yolo\__pycache__\predict.cpython-35.pyc
  darkflow\net\yolo\__pycache__\train.cpython-35.pyc
  darkflow\net\yolo\data.py
  darkflow\net\yolo\misc.py
  darkflow\net\yolo\predict.py
  darkflow\net\yolo\train.py
  darkflow\net\yolov2\__init__.py
  darkflow\net\yolov2\__pycache__\__init__.cpython-35.pyc
  darkflow\net\yolov2\__pycache__\data.cpython-35.pyc
  darkflow\net\yolov2\__pycache__\predict.cpython-35.pyc
  darkflow\net\yolov2\__pycache__\train.cpython-35.pyc
  darkflow\net\yolov2\data.py
  darkflow\net\yolov2\predict.py
  darkflow\net\yolov2\train.py
  darkflow\utils\__init__.py
  darkflow\utils\__pycache__\__init__.cpython-35.pyc
  darkflow\utils\__pycache__\box.cpython-35.pyc
  darkflow\utils\__pycache__\im_transform.cpython-35.pyc
  darkflow\utils\__pycache__\loader.cpython-35.pyc
  darkflow\utils\__pycache__\pascal_voc_clean_xml.cpython-35.pyc
  darkflow\utils\__pycache__\process.cpython-35.pyc
  darkflow\utils\box.py
  darkflow\utils\im_transform.py
  darkflow\utils\loader.py
  darkflow\utils\pascal_voc_clean_xml.py
  darkflow\utils\process.py
  darkflow\version.py

Я сделал так, чтобы он работал на Linux, но все же я был бы признателен, если бы он работал и на Windows. Может кто-нибудь укажет мне правильное направление?

1 Ответ

0 голосов
/ 03 октября 2018

Это конфликт имен: вы успешно установили пакет через pip install ., поэтому теперь darkflow доступен в sys.path через каталог site-packages.Однако при запуске python script.py текущему рабочему каталогу добавляется sys.path, поэтому, если текущий каталог содержит пакет darkflow, он выбирается перед тем, который установлен в site-packages.Поскольку каталог исходного кода не содержит общего объекта, сценарий завершается ошибкой.

Решение состоит в том, чтобы запустить сценарий из другого каталога, например

cd %HOMEPATH% & flow -h

, или, если вам нужноработайте с кодом, переустановите пакет в редактируемом режиме:

pip uninstall -y darkflow & cd path\to\darkflow-master & pip install -e .

Таким образом, общие объекты будут скомпилированы и размещены вместе с исходным кодом, поэтому вы можете запускать flow из любой точки.

...