簡體   English   中英

加載pyinstaller時遇到python27.dll錯誤

[英]Error loading python27.dll error for pyinstaller

我已成功編輯了我的spec文件,並將包含我數據的文件夾添加到其中。 它構建正常,但仍然無法訪問數據。 當我嘗試運行已編譯的.exe時,我收到此錯誤: Error loading Python DLL: C:\\Users\\Sal\\AppData\\Local\\Temp\\_MEI60122\\python27.dll (error code 126)

編輯1 -我仍然沒有想到我的spec文件看起來像這樣:

a = Analysis(['Clock_In.py'],
             pathex=['C:\\Users\\Sal\\Desktop'],
             hiddenimports=[],
             hookspath=None,
             runtime_hooks=None)
a.datas += [('CO_time.pkl','CO_time.pkl', 'DATA')]
a.datas += [('hours.pkl','hours.pkl', 'DATA')]
a.datas += [('Obj_file.pkl','Obj_file.pkl', 'DATA')]
a.datas += [('weekly_hours_dict.pkl','weekly_hours_dict.pkl', 'DATA')]



pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.datas,
          a.binaries,       
          a.scripts,
          exclude_binaries=True,
          name='Clock_In.exe',
          debug=False,
          strip=None,
          upx=True,
          console=True, 
          icon="C:\Users\Sal\Desktop\Raindropmemory-Legendora-BrokenSword.ico")
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=None,
               upx=True,
               **name='Clock_In')

編輯2

我在64位操作系統(Windows 8)上使用32位python,我注意到這可能會導致我的問題,但仍然沒有解決方案。

編輯3

所以我剛剛嘗試下載64位python並將其放入我的系統路徑中。 用我的.spec文件運行pyinstaller仍然得到完全相同的錯誤代碼! 這里發生了什么! 一個奇怪的細節雖然是來自spec文件的icon="C:\\Users\\Sal\\Desktop\\Raindropmemory-Legendora-BrokenSword.ico")語句已成功執行並更新了圖標,而之前不會這樣。

編輯4

這是我在MEIPASS代碼中直接從文檔中得到的聲明。

if getattr(sys, 'frozen', False):
# we are running in a |PyInstaller| bundle
basedir = sys._MEIPASS
else:
# we are running in a normal Python environment
basedir = os.path.dirname(__file__)

創建這樣的獨立可執行文件后,我發現了同樣的錯誤:

pyi-makespec.exe -F program.py
## Customize script.spec just created

pyinstaller.exe -F script.spec

所以我需要以管理員身份運行可執行文件來解決它。

我不知道原因,因為它不是我的電腦。 我先在我的工作中完成了這個過程並且像魅力一樣工作但不在那里。 也許是一些安全配置或的奇怪安裝,但我在這里添加此解決方案是因為我在尋找數小時沒有成功,這是一個簡單的任務,可以在嘗試更復雜的方法之前節省一些時間。

您將該代碼段放在Python腳本的頂部,您將變成一個可執行文件 - 不在規范中而不是在自己的腳本中。 我在這里找到了一個例子:

https://shanetully.com/2013/08/cross-platform-deployment-of-python-applications-with-pyinstaller/

我遇到了同樣的問題,終於找到原因是殺毒軟件將“python27.dll”視為木馬,並在exe嘗試加載時將其刪除。

通過將“... \\ AppData \\ Local \\ Temp \\”添加到受信任區域來解決該問題。

一件簡單的事情是刪除以下文件夾中的所有內容:C:\\ Users \\ xxx \\ AppData \\ Roaming \\ pyinstaller。 我清理了這個文件夾后修復了這個問題。 也許還會刪除上次由Pyinstaller創建的所有文件。

在Windows 10上的python3.7上有相同的問題。

通過添加--upx-exclude"vcruntime140.dll"選項修復此問題。

更多信息可以在這里找到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM