Autoit Pyinstaller OSError: Невозможно загрузить AutoItX по пути: C: \ Users \ AppData \ Local \ Temp \ _MEI74002 \ autoit \ lib \ AutoItX3_x64.dll - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь изменить мой .py файл на .exe, однако я получаю вышеуказанную ошибку при попытке его запустить. Похоже, хорошо компилируется с Pyinstaller. Я использовал pyinstaller filename.spe c -F -i "pi c .ico", мой filename.spe c ниже. Я пробовал несколько решений для stackoverflow, но, похоже, не могу найти правильное. Кажется, что файл .dll находится в этом каталоге, однако папка _MEI74002 там не существует. Когда я запускаю filename.py, он работает отлично. Фактический путь к файлу .dll находится в переменной datas. Я не понимаю, почему он не регистрируется там.

a = Analysis(['Filename.py'],
         pathex=['Path\\To\\Python\\File'],
         binaries=[('C:\\Users\\PycharmProjects\\iProdi2\\chromedriver.exe', '.\\selenium\\webdriver')],
         datas=[('C:\\Users\\AppData\\Local\\Programs\\Python\\Python38\\Lib\\site-packages\\autoit\\lib\\AutoItX3_x64.dll', '.')], #This is where my .dll file is actually stored
         hiddenimports=[],
         hookspath=[],
         runtime_hooks=[],
         excludes=[],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=block_cipher,
         noarchive=False)

Редактировать: Я хочу распространить свою программу на другие компьютеры, поэтому я хотел бы, чтобы файл .dll был частью приложения .exe таким образом, пользователям не нужно ничего скачивать.

Edit2: у меня появляется следующая ошибка при запуске программы после установки debug = True, strip = None, upx = True, console = True. Я до сих пор не понимаю, в чем дело. Я знал, что с библиотекой autoit что-то не так, но не знал, как ее решить.

File "filename.py", line 18, in <module>
from autoit import control_send
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "c:\users\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 621, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\autoit\__init__.py", line 6, in <module>
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "c:\users\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 621, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\autoit\autoit.py", line 26, in <module>
OSError: Cannot load AutoItX from path: 
C:\Users\AppData\Local\Temp\_MEI179202\autoit\lib\AutoItX3_x64.dll
[22596] Failed to execute script filename

1 Ответ

0 голосов
/ 17 января 2020

"OSError: Невозможно загрузить AutoItX по пути:": Изменить '.' to 'autoit \ lib' - stovfl 31 мин. go

Из моего понимания папка MEI ... является временной папкой, и я помещаю в нее файл .dll с помощью '.' когда это должно было быть в подпапке autoit \ lib. Так что все, что мне нужно было сделать, это то, что Стовфл сказал сделать выше. Спасибо за помощь.

...