Autoit Pyinstaller OSError: Cannot load AutoItX from path: C:\Users\AppData\Local\Temp\_MEI74002\autoit\lib\AutoItX3_x64.dll

Autoit Pyinstaller OSError: Cannot load AutoItX from path: C:\Users\AppData\Local\Temp\_MEI74002\autoit\lib\AutoItX3_x64.dll

我正在尝试将 .py 文件更改为 .exe,但是当我尝试 运行 时出现上述错误。它似乎可以用 Pyinstaller 编译得很好。我使用了 pyinstaller filename.spec -F -i "pic.ico" 我的 filename.spec 在下面 我在 Whosebug 上尝试了几种解决方案,但似乎找不到合适的解决方案。似乎认为 .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

"OSError: Cannot load AutoItX from path:": 更改'.'至 'autoit\lib' – stovfl 31 分钟前

根据我的理解,MEI... 文件夹是一个临时文件夹,我通过“.”将 .dll 文件放入其中。当它应该在 autoit\lib 子文件夹中时。所以我所要做的就是上面 stovfl 所说的那样。感谢您的帮助。