Есть виртуальное окружение с питоном (3.6.1), в котором установлены (при помощи pip) следующие пакеты:
(virtual) F:\pyqt2>pip freeze
appdirs==1.4.3
packaging==16.8
pyparsing==2.2.0
PyQt5==5.8.2
sip==4.19.2
six==1.10.0
В этом же окружении я пытаюсь запустить следующий код:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QWidget()
w.resize(250, 150)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())
При попытке его запуска вылетает ошибка:
(virtual) F:\pyqt2>python run.py
Traceback (most recent call last):
File "run.py", line 2, in <module>
from PyQt5.QtWidgets import QApplication, QWidget
ImportError: DLL load failed: Не найден указанный модуль.
Из текста ошибки не понятно какую dll он пытается загрузить(
При этом если сделать просто import PyQt и вывести path, то видно что qt добавляет правильный путь до папки с dll файлами.
>>> import os
>>> import pprint
>>> import PyQt5
>>>
>>> pprint.pprint(os.environ['PATH'])
('F:\\pyqt2\\virtual\\lib\\site-packages\\PyQt5\\Qt\\bin;F:\\pyqt2\\virtual\\Scripts; ...'
...)
>>>
А если установить PyQt5 не в виртуальном окружении то код выше запускается без проблем и появляется окно.
Собственно вопрос: что нужно сделать что бы PyQt работал в виртуальном окружении (virtualenv)?