[問題] 虛擬環境中的pyinstaller

作者: fragmentwing (片翼碎夢)   2023-08-12 21:34:31
如題
我在虛擬環境中安裝的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去包裝的希望嗎?
作者: gostjoke (鬼笑話)   2023-08-16 12:08:00
你虛擬環境需要先activate 後用pip重新灌需要的包建議虛擬環境直接重新安裝-requirment進去你最後一行就顯示cmd不是venv啟動的虛擬包名\Scripts\activate
作者: fragmentwing (片翼碎夢)   2023-08-16 19:11:00
我包裝的時候是啟動venv的 就像你說的那樣 exe本身應該不需要venv才對(如果需要的話就沒有弄成exe的意義了)補充說明 我有弄一個只有使用matplotlib的 就能執行
作者: lycantrope (阿寬)   2023-08-16 21:57:00
onefile?
作者: fragmentwing (片翼碎夢)   2023-08-17 12:27:00
也試過了 其它像hidden import 之類也有會不會有的比較少見的package就是不能包?因為真的還沒遇過這狀況而且包的時候pyinstaller還會因為找不到東西跳出虛擬環境到外面抓……
作者: lycantrope (阿寬)   2023-08-17 14:44:00
error有寫啊,手動把nanoscope加入exe內啊
作者: fragmentwing (片翼碎夢)   2023-08-17 18:41:00
加了他不吃R 你是說hidden import沒錯吧
作者: lycantrope (阿寬)   2023-08-17 23:52:00
add-binary啊 你有google嗎
作者: fragmentwing (片翼碎夢)   2023-08-18 12:47:00
直接在pkg卡住 怒用nuitka竟然成功一次解決

Links booklink

Contact Us: admin [ a t ] ucptt.com