Исполняемый файл Pyinstaller не может импортировать torchvision - PullRequest
2 голосов
/ 27 мая 2019

Это мой main.py :

import torchvision
input("Press key")

Правильно работает в командной строке: python main.py

Мне нужен исполняемый файл для Windows. Так я и сделал: pyinstaller main.py

Но когда я запустил main.exe , внутри /dist/main я получил эту ошибку:

Traceback (most recent call last):
  File "main.py", line 1, in <module>

  ... (omitted)

  File "site-packages\torchvision\ops\misc.py", line 135, in <module>
  File "site-packages\torchvision\ops\misc.py", line 148, in FrozenBatchNorm2d
  File "site-packages\torch\jit\__init__.py", line 850, in script_method
  File "site-packages\torch\jit\frontend.py", line 152, in get_jit_def
  File "inspect.py", line 973, in getsource
  File "inspect.py", line 955, in getsourcelines
  File "inspect.py", line 786, in findsource
OSError: could not get source code
[2836] Failed to execute script main

Кажется, что некоторый исходный код неправильно импортирован из pyinstaller. Я не уверен, что проблема в модуле torch или torchvision .

Дополнительная информация:

  • Я недавно установил Visual Studio 2019

Информация о системе:

  • Окно 10
  • Python 3.7
  • факел-1.1.0
  • torchvision-0.3.0

[EDIT]

Я обнаружил, что проблема в определении класса FrozenBatchNorm2d внутри torchvision. Следующий скрипт выдает ту же ошибку, что и ранее опубликованный:

main.py

import torch

class FrozenBatchNorm2d(torch.jit.ScriptModule):

    def __init__(self, n):
        super(FrozenBatchNorm2d, self).__init__()

    @torch.jit.script_method

    def forward(self):
        pass

Я скопировал весь исходный файл факела. Но я все еще получил ошибку ...

1 Ответ

0 голосов
/ 28 мая 2019

Понижение torchvision до предыдущей версии исправит ошибку.

pip uninstall torchvision
pip install torchvision==0.2.2.post3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...