[問題] 虛擬環境中的pyinstaller

看板Python作者 (片翼碎夢)時間2年前 (2023/08/12 22:03), 編輯推噓1(1017)
留言18則, 3人參與, 最新討論串1/1
如題 我在虛擬環境中安裝的pyinstaller會一直往虛擬環境外面的site-package抓東西 大致上在 10445 INFO: Looking for dynamic libraries 之後 會列出一大堆路徑 然後就可以看到pyinstaller開始往奇怪的路徑上抓東西 另外,我用Auto-py-to-exe去抓額外檔案時,發現虛擬環境中連matplotlib都找不到 打包完的檔案用cmd去執行也是顯示沒有matplotlib 問gpt說是在程式裡面用sys先砍光路徑後新增路徑 可是這樣做又有別的問題...... 之後試著用hidden import的方式把抓不到的matplotlib和nanoscope這兩個抓進去 結果用cmd運行執行檔的結果如下: C:\Users\User\Desktop\myenv\dist>t Traceback (most recent call last): File "t.py", line 6, in <module> File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module File "nanoscope\__init__.py", line 7, in <module> File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module File "nanoscope\files\__init__.py", line 8, in <module> File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module File "nanoscope\files\base.py", line 11, in <module> File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module File "nanoscope\dll.py", line 81, in <module> File "nanoscope\dll.py", line 38, in _load File "os.py", line 1117, in add_dll_directory FileNotFoundError: [WinError 3] 系統找不到指定的路徑。: 'C:\\Users\\User\\AppData\\Local\\Temp\\_MEI149682\\nanoscope\\Lib\\64bit' [24128] Failed to execute script 't' due to unhandled exception! 是有些site-package不該抱持能夠用pyinstaller去包裝的希望嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.95.166 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1691849038.A.8C3.html

08/16 12:08, , 1F
你虛擬環境需要先activate 後用pip重新灌需要的包
08/16 12:08, 1F

08/16 12:10, , 2F
建議虛擬環境直接重新安裝-requirment進去
08/16 12:10, 2F

08/16 12:11, , 3F
你最後一行就顯示cmd不是venv啟動的
08/16 12:11, 3F

08/16 12:15, , 4F
虛擬包名\Scripts\activate
08/16 12:15, 4F

08/16 19:11, , 5F
我包裝的時候是啟動venv的 就像你說的那樣 exe本身
08/16 19:11, 5F

08/16 19:11, , 6F
應該不需要venv才對(如果需要的話就沒有弄成exe的意
08/16 19:11, 6F

08/16 19:11, , 7F
義了)
08/16 19:11, 7F

08/16 20:19, , 8F
補充說明 我有弄一個只有使用matplotlib的 就能執行
08/16 20:19, 8F

08/16 21:57, , 9F
onefile?
08/16 21:57, 9F

08/17 12:27, , 10F
也試過了 其它像hidden import 之類也有
08/17 12:27, 10F

08/17 12:28, , 11F
會不會有的比較少見的package就是不能包?因為真的
08/17 12:28, 11F

08/17 12:28, , 12F
還沒遇過這狀況
08/17 12:28, 12F

08/17 12:29, , 13F
而且包的時候pyinstaller還會因為找不到東西跳出虛
08/17 12:29, 13F

08/17 12:29, , 14F
擬環境到外面抓……
08/17 12:29, 14F

08/17 14:44, , 15F
error有寫啊,手動把nanoscope加入exe內啊
08/17 14:44, 15F

08/17 18:41, , 16F
加了他不吃R 你是說hidden import沒錯吧
08/17 18:41, 16F

08/17 23:52, , 17F
add-binary啊 你有google嗎
08/17 23:52, 17F

08/18 12:47, , 18F
直接在pkg卡住 怒用nuitka竟然成功一次解決
08/18 12:47, 18F
文章代碼(AID): #1arv5EZ3 (Python)
文章代碼(AID): #1arv5EZ3 (Python)